#database #sqlite #count
#База данных #sqlite #подсчитайте
Вопрос:
Я изучаю SQLite3 и у меня проблемы с этим конкретным выводом. Допустим, у меня есть столбец типа:
user0
user1
user1
user2
user2
user3
user3
user3
user4
user4
user4
user4
Я хотел бы подсчитать, сколько раз пользователь появляется в столбце и имеет вывод, подобный:
1 | 1
2 | 2
1 | 3
1 | 4
Значение: 1 пользователь появляется 1 раз, 2 пользователя появляются 2 раза, 1 пользователь появляется 3 раза, 1 пользователь появляется 4 раза.
Мне не нужно знать ничего другого, только сколько пользователей со сколькими учетными записями.
Комментарии:
1. Я думаю, что «группа по» может вам помочь
2.
GROUP BY
иcount()
, да. Прочитайте о функциях группировки и агрегирования в вашем любимом руководстве по SQL.
Ответ №1:
Вам group by
нужно один раз получить счетчики 1-го столбца, который вам нужен, а затем снова по этому результату:
select count(*) total, counter
from (
select count(*) counter
from tablename
group by col
)
group by counter
Смотрите демонстрацию
Результаты:
| total | counter |
| ----- | ------- |
| 1 | 1 |
| 2 | 2 |
| 1 | 3 |
| 1 | 4 |
Комментарии:
1. Спасибо! Это сработало, только изменил порядок [count ( ) total, counter] на [counter, count) ) total], чтобы получить точно такой же результат, как в моем примере, на случай, если кому-то это понадобится 🙂
2. Это порядок вашего ожидаемого результата. Вы можете проверить демонстрацию.
3. Если этот ответ решил вашу проблему, подумайте о том, чтобы принять его.