我有一个商店列表,商店内的部门和每个部门的销售情况,如此(使用子查询中的max(sales)创建,但这不是非常重要的我不认为):
toronto baskets 500
vancouver baskets 350
halifax baskets 100
toronto noodles 275
vancouver noodles 390
halifax noodles 120
halifax fish 200
Run Code Online (Sandbox Code Playgroud)
我想请各个商店最畅销的部门.结果应如下所示:
toronto baskets 500
vancouver noodles 275
halifax fish 200
Run Code Online (Sandbox Code Playgroud)
每当我使用GROUP BY时,它都包含我子查询中的所有列表.没有临时表,有没有一个很好的干净方法呢?
这在 Oracle 中有效,其他实现可能具有不同的分析函数语法(或完全缺少它们):
select store
, max(department) keep(dense_rank last order by sales)
, max(sales)
from (
...query that generates your results...
)
group by store
Run Code Online (Sandbox Code Playgroud)