2012-06-14 38 views
0

的,我有以下表中列出了所有頒發獎盃:完全和部分列/列的總列


Name: Cups 
Columns: Month, Cup, User 

Example: 
Month | Cup__ | User__ 
_____ | _____ | ______ 
Febru | Cup_1 | User_1 
Febru | Cup_2 | User_1 
March | Cup_1 | User_1 
March | Cup_2 | User_2 
April | Cup_2 | User_2 

*There are only 2 different cups 

我知道如何讓每個用戶有多少獎了( COUNT),甚至是某種類型(WHERE杯= Cup_1),但我如何得到這一切在同一查詢?

實施例基於上述表:


User__ | Total | Cup_1 | Cup_2 
______ | _____ | _____ | _____ 
User_1 | __3__ | __2__ | __1__ 
User_2 | __2__ | __0__ | __2__ 

User_1 has 3 cups, 2 of Cup_1 and 1 Cup_2. 
User_2 has 2 cups, 2 of Cup_2. 

基本上,總列是其它列的總和。

回答

1

這是一個有點乏味,但它會是這個樣子

SELECT User, COUNT(*) AS Total, SUM(IF(Cup = "Cup_1", 1, 0)) AS Cup_1, SUM(IF(Cup = "Cup_2", 1, 0)) AS Cup_2 FROM Cups GROUP BY User 

我使用SUM與條件語句,以確定是否杯我在尋找的值相匹配。如果有匹配,它會加1,如果沒有,則加0。如前所述,它有點乏味,但它肯定會奏效!

+0

它完美。感謝您提供快速簡單的答案。 :) – Edu