我有以下数据:
account_id note_id size id
---------- ------- ------ --------
48 1554 196036 28229509
48 1554 18777 28229588
48 1554 4861 28229566
48 1559 176406 28229516
48 1559 82041 28229521
48 1559 3063 28229541
48 1583 92150 28229514
48 1583 3495 28229501
48 1583 119203 28229534
8764 25556838 5126 28229567
8764 25556838 340618 28229508
我想size
为每个 note_id 获取列中最高值的 id。
例子:
note_id: 25556838
size: 340618
id: 28229508
note_id: 1583
size: 119203
id: 28229534
我怎样才能得到这些数据?
greatest-n-per-group 的查询可以使用窗口函数来解决:
以上是标准 SQL,但 Postgres 作为另一个(专有)功能可用于此:
该
distinct on ()
解决方案通常比使用窗口函数的解决方案更快。