2014-08-31 44 views
1

我有這樣分組的結果,但保留了一些獨特的價值

year tour  wins cuts money 
1990  EUR  2   4 54,500 
1990  USA  1   2 22,000 
1991  EUR  4   2 154,000 
1991  USA  2   1 245,000 
and so on 

我想GROUP逐年結果,總結勝削減SQL表 不過,我希望保持資金的單獨列,並返回這兩個值,從每年行,像moneyEUR和moneyUSA(基於TOUR列)

我目前在做一個SELECT這樣

SELECT year, SUM(wins), SUM(cuts), money FROM players GROUP BY year 

這團體每年罰款,但只是返回第一個貨幣價值。

有沒有一種方法,我也可以返回每個貨幣值作爲單獨的值? 並且每年還有其他值?

回答

3

如果你總是精確地2條每年那麼你可以做

SELECT year, 
     SUM(wins), 
     SUM(cuts), 
     sum(case when tour = 'EUR' then money end) as moneyEUR, 
     sum(case when tour = 'USA' then money end) as moneyUSA 
FROM players 
GROUP BY year 
+0

我的道歉。我忘了一些細節。我需要根據旅遊專欄關聯或能夠說明貨幣價值來自哪一行。 (請參閱問題說明中編輯的表格說明)。所以我需要知道錢的價值是什麼。因此min或max不起作用。謝謝你快速的回覆! – 2014-08-31 17:54:54

+0

我更新了我的回答 – 2014-08-31 18:09:22

0
select t1.tour, t1.money, t1.year, t2.wins_sum, t2.cuts_sum 
from players t1 
join (
    select year 
    sum(wins) wins_sum, 
    sum(cuts) cuts_sum 
    from players 
    group by year 
) t2 on t1.year = t2.year 
+0

感謝您的快速回復。那麼我如何通過答案訪問每個貨幣價值?並且我可以將貨幣項目的哪個行值列出來嗎? – 2014-08-31 17:58:12

+0

@EdPattermann此查詢返回每個貨幣值1行。是的,您可以將旅程添加到選擇。看到udpate – FuzzyTree 2014-08-31 17:59:37

+0

我明白了。每一行都有相同的結果,除了貨幣價值不同。是?我希望每年有一行,總計價值,以及兩個金錢價值,moneyEUR和moneyUSA。感謝幫助。 - Ed – 2014-08-31 18:13:24