[mysql] DISTINCT 값의 발생 수 계산

특정 필드에서 DISTINCT 값을 찾고 해당 값의 발생 횟수를 계산 한 다음 결과를 계산하여 정렬하는 MySQL 쿼리를 찾으려고합니다.

예제 db

id         name
-----      ------
1          Mark
2          Mike
3          Paul
4          Mike
5          Mike
6          John
7          Mark

예상 결과

name       count
-----      -----
Mike       3
Mark       2
Paul       1
John       1



답변

SELECT name,COUNT(*) as count
FROM tablename
GROUP BY name
ORDER BY count DESC;


답변

이 같은 것은 어떻습니까 :

SELECT
  name,
  count(*) AS num
FROM
  your_table
GROUP BY
  name
ORDER BY
  count(*)
  DESC

이름과 표시 횟수를 선택하고 있지만 이름별로 그룹화하므로 각 이름은 한 번만 선택됩니다.

마지막으로, 가장 자주 나타나는 사용자가 먼저 오도록 DESCending 순서로 여러 번 주문합니다.


답변

더 나은 성능을 위해 Amber의 COUNT (*)를 COUNT (1)로 변경했습니다.

SELECT name, COUNT(1) as count
FROM tablename
GROUP BY name
ORDER BY count DESC;


답변