Группа 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

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

Ответ 1

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

Ответ 2

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

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