SQL Group по нескольким столбцам - PullRequest
13 голосов
/ 19 апреля 2011

У меня есть следующая таблица

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

Большое спасибо

Ответы [ 2 ]

20 голосов
/ 19 апреля 2011
SELECT key1, key2, COUNT(id) FROM actions GROUP BY key1, key2 ORDER BY key1, key2
4 голосов
/ 19 апреля 2011

В предложении GROUP необходимо указать все поля, которые не входят в совокупность (COUNT, MAX, MIN).Таким образом, в этом случае вам нужно добавить поле key1, например:

Select  key1, key2, count(id)  
from actions 
group by key1, key2 
order by key1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...