SQL COUNT COUNT - PullRequest
       12

SQL COUNT COUNT

1 голос
/ 11 марта 2010

У меня есть некоторые данные, которые я запрашиваю. Таблица состоит из двух столбцов - уникального идентификатора и значения. Я хотел бы посчитать, сколько раз каждое уникальное значение появляется (что легко сделать с помощью COUNT и GROUP BY), но затем я хочу иметь возможность подсчитать это. Итак, я хотел бы увидеть, сколько предметов появляется дважды, трижды и т. Д.

То есть для следующих данных (ID, val) ...

1, 2
2, 2
3, 1
4, 2
5, 1
6, 7
7, 1

Промежуточный шаг будет (val, count) ...

1, 3
2, 3
7, 1

А мне бы хотелось (count_from_above, new_count) ...

3, 2 - поскольку три раза появляется в предыдущей таблице дважды
1, 1 - поскольку один раз появляется в предыдущей таблице

Есть ли какой-нибудь запрос, который может это сделать? Если это поможет, я работаю с Postgres. Спасибо!

1 Ответ

5 голосов
/ 11 марта 2010

Попробуйте что-то вроде этого:

select
   times,
   count(1)
from ( select 
          id,
          count(distinct value) as times
       from table
       group by id ) a
group by times
...