2016-06-22 95 views
2

我正在使用Dynamodb。我有一個簡單的員工表,如id,姓名,薪水,doj等字段。在dynamodb中,select max(salary) from employee的等效查詢是什麼?Dynamodb最大值

回答

0

在Dynamodb中沒有廉價的方法來實現這一點。沒有inbuild函數來確定屬性的最大值而不檢索所有項目並以編程方式計算。

+0

是否有另一種獲得相同結果的方法?事先製作一個索引查詢? –

1

不確定boto3boto可以運行這樣

1

您可以模擬你的模式是這樣的:

  • employee_id,因爲分區鍵
  • salary,如排序表或本地二級索引的鍵。

然後,Query你的表給出employee_id,與ScanIndexForward爲假,並挑選第一個返回的條目。由於所有第一行employee_id以分類方式存儲,因此按降序排列的第一個條目將是具有最高salary的條目。

您還可以將Limit保留爲1,在這種情況下,DynamoDB將只返回一條記錄。

相關文檔here

+0

Hi @ ketan ..感謝您的回覆...我創建了一個關於emoployee_name和工資的索引作爲排序鍵並查詢爲響應= table.query( IndexName ='Emp_Name-Salary-index', Limit = 1, ScanIndexForward = False, )...但由於必須使用keycondition表達式,所以這給了我錯誤。我是一個新手dynamo.please幫助我,我失蹤的地方。 – arunapavan

+0

您還沒有指定employee_id。也是這樣 –