Dynamodb最大值

时间:2016-06-22 05:47:33

标签: python amazon-dynamodb boto3

我使用的是Dynamodb。我有一个简单的Employee表,其中包含id,name,salary,doj等字段。在dynamodb中select max(salary) from employee的等效查询是什么?

3 个答案:

答案 0 :(得分:2)

您可以为您的架构建模,例如:

  • employee_id,as partition-key
  • salary,作为表或本地二级索引的排序键。

然后,Query您的表格为employee_idScanIndexForward为false,并选择第一个返回的条目。由于所有行employee_id都以排序方式存储,因此desc顺序中的第一个条目将是salary最高的那个。

您也可以将Limit保留为1,在这种情况下,DynamoDB只会返回一条记录。

相关文档here

答案 1 :(得分:1)

在Dynamodb中没有廉价的方法来实现这一目标。没有inbuild函数来确定属性的最大值而不检索所有项目并以编程方式计算。

答案 2 :(得分:1)

不确定boto3,但boto可以这样运行

from boto.dynamodb2.table import Table

table = Table("employee")
values = list(table.query_2(reverse=True, limit=1))
MAXVALUE = values[0][salary]