PostgreSQL获取所有不同ID的最新记录的总和

吉姆

我有下表:

<id: 1, location: "New York" product_id: 1, amount: 10, date: "2020-06-23T20:04:12">
<id: 2, location: "New York" product_id: 1, amount: 20, date: "2020-06-20T00:00:45">
<id: 3, location: "New York" product_id: 2, amount: 50, date: "2020-06-19T23:26:21">
<id: 4, location: "New York" product_id: 3, amount: 50, date: "2020-06-24T00:00:00">
<id: 5, location: "Ottawa" product_id: 1, amount: 20, date: "2020-06-12T00:00:00">
<id: 6, location: "Ottawa" product_id: 1, amount: 30, date: "2020-06-22T00:00:00">
<id: 7, location: "Ottawa" product_id: 2, amount: 40, date: "2020-06-23T00:00:00">

我想编写一个原始的sql查询,将amount每个位置的总数相加,但是每个产品id只添加一次。因此,当有相似product_id的记录时,它选择的记录是最接近但小于max_date变量的记录例如,假设max_date=“ 2020-06-24T00:00:00”,查询上表时的响应为:

{
   "New York":60, #exludes ids 2, 3
   "Ottawa": 70 #exludes id 4
}

任何帮助都会很棒。抱歉,如果这是一个菜鸟问题,请使用postgresql(或sql)进行更新。

迈克·欧根尼克

请尝试这个。

keepsCTE截止之前限制查询记录"date"及受让人号码与您行。

然后,主查询仅选择row_number()was中的那些1,并按位置计算总和。

with keeps as (
  select location, product_id, amount,
         row_number() over (partition by location, product_id 
                                order by "date" desc) as rn
    from sales
   where "date" < '2020-06-24'
)
select location, sum(amount) as amount
  from keeps
 where rn = 1
 group by location;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Activerecord - 获取所有相关记录的总和

来自分类Dev

高级MySQL查询可获取具有相同ID和不同子ID的最新记录的范围

来自分类Dev

在mongodb中的某些记录之前获取所有记录的总和

来自分类Dev

如何获取最新记录或在mysql的列中具有所有不同值的最大对应日期的记录?

来自分类Dev

SQL查询以获取总和小于10000的所有记录

来自分类Dev

PostgreSQL获取不同的记录

来自分类Dev

如何在一次查询中获取特定记录的总和和所有记录的总和?

来自分类Dev

从ID数组获取所有Rails记录

来自分类Dev

没有 ID 和日期的 PostgreSQL 最新记录

来自分类Dev

每天获取所有不同ID的计数

来自分类Dev

在滚动总和后,从每个材料ID获取每个月的最新记录

来自分类Dev

PostgreSQL获取所有用户的最新行/事件

来自分类Dev

获取轨道中每个不同记录的所有列

来自分类Dev

Rails查询:根据最新的子记录获取所有父记录

来自分类Dev

如何在PostgreSQL中获取最新记录?

来自分类Dev

获取列的每个不同值的最新记录

来自分类Dev

如何只获取不同范围的最新记录?

来自分类Dev

MYSQL:最新记录的总和

来自分类Dev

MYSQL:最新记录的总和

来自分类Dev

所有记录的总和存储在哪里?

来自分类Dev

获取等于给定ID的所有记录laravel eloqouent

来自分类Dev

使用mysql中的最近记录获取组的所有ID

来自分类Dev

Laravel 从数据库中获取所有行记录的总和

来自分类Dev

PostgreSQL:选择具有不同条件的总和

来自分类Dev

SQL获取每个ID的最新记录

来自分类Dev

如何获取刚刚插入的最新记录的ID?

来自分类Dev

Grails:检索所有最新的孩子记录

来自分类Dev

DynamoDB查询| 如何获取按最新时间戳排序的所有记录?

来自分类Dev

如何获取每个ID的值总和以及更新其他表中的现有记录

Related 相关文章

  1. 1

    Activerecord - 获取所有相关记录的总和

  2. 2

    高级MySQL查询可获取具有相同ID和不同子ID的最新记录的范围

  3. 3

    在mongodb中的某些记录之前获取所有记录的总和

  4. 4

    如何获取最新记录或在mysql的列中具有所有不同值的最大对应日期的记录?

  5. 5

    SQL查询以获取总和小于10000的所有记录

  6. 6

    PostgreSQL获取不同的记录

  7. 7

    如何在一次查询中获取特定记录的总和和所有记录的总和?

  8. 8

    从ID数组获取所有Rails记录

  9. 9

    没有 ID 和日期的 PostgreSQL 最新记录

  10. 10

    每天获取所有不同ID的计数

  11. 11

    在滚动总和后,从每个材料ID获取每个月的最新记录

  12. 12

    PostgreSQL获取所有用户的最新行/事件

  13. 13

    获取轨道中每个不同记录的所有列

  14. 14

    Rails查询:根据最新的子记录获取所有父记录

  15. 15

    如何在PostgreSQL中获取最新记录?

  16. 16

    获取列的每个不同值的最新记录

  17. 17

    如何只获取不同范围的最新记录?

  18. 18

    MYSQL:最新记录的总和

  19. 19

    MYSQL:最新记录的总和

  20. 20

    所有记录的总和存储在哪里?

  21. 21

    获取等于给定ID的所有记录laravel eloqouent

  22. 22

    使用mysql中的最近记录获取组的所有ID

  23. 23

    Laravel 从数据库中获取所有行记录的总和

  24. 24

    PostgreSQL:选择具有不同条件的总和

  25. 25

    SQL获取每个ID的最新记录

  26. 26

    如何获取刚刚插入的最新记录的ID?

  27. 27

    Grails:检索所有最新的孩子记录

  28. 28

    DynamoDB查询| 如何获取按最新时间戳排序的所有记录?

  29. 29

    如何获取每个ID的值总和以及更新其他表中的现有记录

热门标签

归档