SQL Group由多列组成

And*_*man 14 sql sqlite

我有下表

CREATE TABLE actions (id INTEGER PRIMARY KEY, key1 NUMERIC, key2 NUMERIC);
Run Code Online (Sandbox Code Playgroud)

我甚至不确定如何解释这个,所以我认为最好我举个例子:

id  key1 key2
1   1    1
2   1    2
3   1    1
4   2    1
5   2    3
Run Code Online (Sandbox Code Playgroud)

输出这样的东西:

key1 key2 count(id)
1    1    2
1    2    1
2    1    1
2    3    1  
Run Code Online (Sandbox Code Playgroud)

我试过这样的东西,但它不起作用,因为我需要key1字段不是唯一的:

Select  key1,key2,count(id)  from actions group by key2, order by key1
Run Code Online (Sandbox Code Playgroud)

非常感谢

gco*_*ney 21

SELECT key1, key2, COUNT(id) FROM actions GROUP BY key1, key2 ORDER BY key1, key2
Run Code Online (Sandbox Code Playgroud)


eKe*_*ek0 5

在 GROUP 子句中,您必须编写所有不在聚合中的字段(COUNT、MAX、MIN)。因此,在这种情况下,您需要添加 key1 字段,如下所示:

Select  key1, key2, count(id)  
from actions 
group by key1, key2 
order by key1
Run Code Online (Sandbox Code Playgroud)