2011-04-19 68 views
10

我有以下表SQL組由多個列

CREATE TABLE actions (id INTEGER PRIMARY KEY, key1 NUMERIC, key2 NUMERIC); 

我什至不知道如何解釋這個,所以我認爲這是最好的,我舉個例子:

id key1 key2 
1 1 1 
2 1 2 
3 1 1 
4 2 1 
5 2 3 

到輸出中的東西像這樣:

key1 key2 count(id) 
1 1 2 
1 2 1 
2 1 1 
2 3 1 

我試過這樣的事情,但它不起作用,因爲我需要key1字段不是唯一的:

Select key1,key2,count(id) from actions group by key2, order by key1 

非常感謝

+0

爲什麼不按兩種方法進行分組:key1和key2?這樣key1不會是唯一的。獨特將是鍵的組合。 – 2011-04-19 11:28:32

回答

13
SELECT key1, key2, COUNT(id) FROM actions GROUP BY key1, key2 ORDER BY key1, key2 
3

在GROUP子句中,你必須寫不在的agregate(COUNT,MAX,MIN)所有領域。因此,在這種情況下,您需要添加key1字段,如下所示:

Select key1, key2, count(id) 
from actions 
group by key1, key2 
order by key1