Dynamodb 最大值

2022-01-15 00:00:00 python boto3 amazon-dynamodb

问题描述

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

I'm using Dynamodb. I have a simple Employee table with fields like id, name, salary, doj, etc. What is the equivalent query of select max(salary) from employee in dynamodb?


解决方案

你可以为你的模式建模:

You can model your schema something like:

  • employee_id,作为分区键
  • salary,作为表或本地二级索引的排序键.
  • employee_id, as partition-key
  • salary, as sort-key of the table or local secondary index.

然后,Query 表中给定的 employee_idScanIndexForward 为 false,然后选择第一个返回的条目.由于 employee_id 的所有行都以排序方式存储,因此按 desc 顺序排列的第一个条目将是具有最高 salary 的条目.

Then, Query your table for given employee_id, with ScanIndexForward as false, and pick the first returned entry. Since all rows one employee_id are stored in sorted fashion, the first entry in desc order will be the one with highest salary.

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

You can also keep Limit as 1, in which case DynamoDB will return only one record.

相关文档此处.

相关文章