2012-04-17 5 views
17

Это, вероятно, было задано раньше, но я не могу пробиться сквозь множество результатов поиска.Подсчет количества раз появляется в определенном столбце в MySQL

Учитывая ненормированную таблицу MySQL, какой наиболее оптимизированный запрос подсчитывает количество раз, когда использовалось каждое отдельное значение столбца x?

например. Учитывая таблицу, содержащую

mike 
mary 
mike 

Показывать результаты как:

mike 2 
mary 1 

Из документации MySQL, казалось бы, что count представляет собой совокупность функций, которые могут быть использованы с GROUP BY, но это не делает то, что я хочу (это возвращение общего количества строк в GROUP BY, а не число появлений для каждой строки. т.е. это не работает SELECT count(email) as c FROM orders GROUP BY email

+0

'i.e. это не работает' --- объясните это в деталях пожалуйста. «Не работает» совсем не полезно – zerkms

+0

Спасибо. Разве я не знаю, что случилось со мной, когда я спросил об этом. –

ответ

42
select email, count(*) as c FROM orders GROUP BY email 
+0

Видимо, я неправильно понял результаты. Включение «электронной почты» в нем упростило, какие данные я видел. В моем запросе у меня не было ничего плохого. Благодарю. –

+0

заказ - хорошая идеа, поэтому мой вклад: выберите адрес электронной почты, счетчик (*), так как c FROM заказов GROUP BY email ORDER BY c DESC; – ademar111190

0
select name, count(*) from table group by name; 

я думаю, что нужно сделать, это

12
SELECT column_name, COUNT(column_name) 
FROM table_name 
GROUP BY column_name 
1

Посмотрите на группы по функции.

Что делает группа по функции, является презумпцией, которая группирует аналогичное значение для заданного поля. Затем вы можете указать количество времени, в течение которого это значение было сгруппировано с помощью функции COUNT.

MySQL Documentation

Вы также можете использовать группу по функции с хорошим числом других функций определяют с помощью MySQL (см ссылку выше).

mysql> SELECT student_name, AVG(test_score) 
    ->  FROM student 
    ->  GROUP BY student_name; 
Смежные вопросы