Я имею таблицу ниже, и я хочу сделать следующее:Как подсчитать количество сгруппированных строк в MySQL, когда я уже подсчитывать общее количество строк
Подсчитайте количество раз каждый элемент появляется в таблица
Подсчитайте
DISTINCT
количество элементовгруппирует элементы по имени
+-------+---------+ | id | names | +-------+---------+ | 1 | Apple | | 2 | Orange | | 3 | Grape | | 4 | Apple | | 5 | Apple | | 6 | Orange | | 7 | Apple | | 8 | Grape | +-------+---------+
Для 1 и 3 точек у меня есть следующий запрос, который работает достаточно хорошо:
SELECT * , COUNT(names) as count_name, FROM tbl_products WHERE type = '1' GROUP BY names
Так я получаю:
Apple (4) Orange (2) Grape (2)
Теперь я хочу также подсчитать количество сгруппированы по строкам и добавлены строки для подсчета отдельных элементов, однако есть некоторая проблема, поскольку MySQL принимает запрос, но не может вывести результат:
SELECT * ,
COUNT(names) as count_name,
COUNT(DISTINCT names) as count_total
FROM tbl_products WHERE type = '1'
GROUP BY names
Может ли кто-нибудь посоветовать, в чем проблема?
EDIT: Для более клиренса я хочу, чтобы получить таблицу, как это:
+-------+---------+------------+-------------+
| id | names | count_ctg | count_total |
+-------+---------+------------+-------------+
| 1 | Apple | 4 | 3 |
| 2 | Orange | 2 | 3 |
| 3 | Grape | 2 | 3 |
+-------+---------+------------+-------------+
Я не уверен, чего вы ожидаете. Не могли бы вы привести пример того, что вы ищете? –
уверен, я хочу получить 1. Количество раз, когда каждый элемент появляется в таблице, то есть Apple - 4, Orange - 2, Grape - 2, затем я хочу получить 2. Сколько различных элементов существует в таблице, т. Е. 3 - у нас есть Apple, Orange и Grape, и, наконец, я хочу 3. группировать элементы по имени, т. е. получить 3 строки. – user3132858
Я имею в виду, не могли бы вы изменить свой вопрос, чтобы показать результат запроса, который вы хотели бы иметь. –