-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 つのクエリで実行できることはわかっていますが、1 つのクエリで友人を驚かせるのは面白いと思います。

編集:答えはこれです:

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

1 に答える 1

1

SELECT使用する RDBMS がウィンドウ関数をサポートしている場合は、1 つ(サブクエリなし) で実行できます。

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 に答える