-2

桌子

这些是下面的列:

城市、名称、支出

Paris, Bob, 4       
Paris John, 6     
Tokio  Adam, 5    
Tokio Mike, 3

它应该返回

Paris, 10, bob 4
Paris 10, jogn 6
tokio 8 adam 5
tokio 8 mike 3

所以我试图让 City, Name, Payout 列出 City, SUM(payout), name, payout。

我知道我可以在 2 个查询中做到这一点,但我认为用一个来给我的朋友一个惊喜会很有趣。

编辑:答案是这样的:

SELECT 
    city, name, payout, SUM(payout) 
FROM 
    table 
GROUP BY 
    city, name 
ORDER BY 
    SUM(payout) DESC
4

1 回答 1

1

如果您使用的 RDBMS 支持窗口函数,您可以使用一个SELECT(无子查询):

SELECT city, SUM(payout) OVER (PARTITION BY city) AS sum_per_city,
       name, payout
FROM tableX 
ORDER BY sum_per_city DESC 
       , name ASC ;
于 2012-12-08T13:03:14.333 回答