【发布时间】:2020-10-13 07:52:58
【问题描述】:
我的数据库中有下表:
date sales
1 2010-12-13 10
2 2010-12-13 10
3 2010-12-13 10
4 2010-12-13 10
5 2010-12-13 10
6 2010-12-14 20
7 2010-12-14 20
8 2010-12-14 20
9 2010-12-14 20
10 2010-12-14 20
有没有办法只获得第一条记录,其余的用 NULL 或 0 填充组的其余部分?因为分组将按日期和销售额进行:
例如,预期的输出是:
date sales
1 2010-12-13 10
2 2010-12-13 0
3 2010-12-13 0
4 2010-12-13 0
5 2010-12-13 0
6 2010-12-14 20
7 2010-12-14 0
8 2010-12-14 0
9 2010-12-14 0
10 2010-12-14 0
所以本质上是保留第一条记录,但使组中的其余记录为 0(如果更快/更容易,可能是 Null)
我最接近解决这个问题的方法是通过内部连接获得第一条记录 - 但我认为分区可能会解决它 - 只是现在卡住了!
任何帮助表示赞赏!
使用 SQLite - 我也可以使用 GCP (SQL)
【问题讨论】:
标签: sql sqlite greatest-n-per-group window-functions