Ответ 1
SELECT
category,
COUNT(*) AS `num`
FROM
posts
GROUP BY
category
У меня есть таблица SQL, называемая "сообщения", которая выглядит так:
id | category
-----------------------
1 | 3
2 | 1
3 | 4
4 | 2
5 | 1
6 | 1
7 | 2
Каждый номер категории соответствует категории. Как я могу подсчитать количество раз, когда каждая категория появляется в столбце в одном запросе sql?
В качестве примера такой запрос может возвращать символический массив, такой как: (1:3, 2:2, 3:1, 4:1)
Мой текущий метод - использовать запросы для каждой возможной категории, такие как: SELECT COUNT(*) AS num FROM posts WHERE category=#
, а затем объединить возвращаемые значения в конечный массив. Однако я ищу решение, которое использует только один запрос.
SELECT
category,
COUNT(*) AS `num`
FROM
posts
GROUP BY
category
Вы можете использовать этот запрос
SELECT distinct(category), COUNT(id) AS CountCategory FROM tablename GROUP BY category
Используйте отличное ключевое слово для лучшей производительности.
Спасибо!!!