2011-04-19 67 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