我有一个数据集,列示例信息如下:
Date ID Cost
05/01 1001 30
05/01 1024 19
05/01 1001 29
05/02 1001 28
05/02 1002 19
05/02 1008 16
05/03 1017 89
05/04 1003 28
05/04 1001 16
05/05 1017 28
05/06 1002 44
... etc...
我想创建一个表来显示每天排名前一位的付款人(成本最高),这意味着表中只有两列,输出示例应该是这样的:
Date ID
05/01 1001
05/02 1001
05/03 1017
05/04 1003
...etc...
我知道这个问题很简单,我的问题是我想简化查询。
我的问题:
select Date, ID
from (select Date, ID, max(SumCost)
from (select Date, ID, sum(cost) as SumCost
from table1
group by Date, ID) a
group by Date, ID) b;
这看起来有点愚蠢,我想优化查询。关键是我只想输出日期和id,这两列。
有什么建议吗?
2条答案
按热度按时间ttygqcqt1#
下面是一个使用相关子查询的方法:
up9lanfz2#
如果在同一天玩家有多个成本时,我们取一个最大成本,那么这个查询将起作用。您上面写的查询不正确。