我使用的是Dynamodb。我有一个简单的Employee表,其中包含id,name,salary,doj等字段。在dynamodb中select max(salary) from employee
的等效查询是什么?
答案 0 :(得分:2)
您可以为您的架构建模,例如:
employee_id
,as partition-key salary
,作为表或本地二级索引的排序键。然后,Query
您的表格为employee_id
,ScanIndexForward
为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]