특정 필드에서 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;