[mysql] SQL 열에서 가장 빈번한 값 찾기

SQL 테이블의 주어진 열에서 가장 빈번한 값을 어떻게 찾을 수 있습니까?

예를 들어,이 테이블의 경우 two가장 빈번한 값이므로 반환해야 합니다.

one
two
two
three



답변

SELECT       `column`,
             COUNT(`column`) AS `value_occurrence`
    FROM     `my_table`
    GROUP BY `column`
    ORDER BY `value_occurrence` DESC
    LIMIT    1;

교체 columnmy_table. 열의 가장 일반적인 값 1을 보려면 늘리십시오 N.


답변

다음과 같이 시도하십시오.

SELECT       `column`
    FROM     `your_table`
    GROUP BY `column`
    ORDER BY COUNT(*) DESC
    LIMIT    1;


답변

테이블 이름을로 tblperson, 열 이름을 city. 도시 열에서 가장 많이 반복되는 도시를 검색하고 싶습니다.

 select city,count(*) as nor from tblperson
        group by city
          having count(*) =(select max(nor) from
            (select city,count(*) as nor from tblperson group by city) tblperson)

다음 nor은 별칭 이름입니다.


답변

아래 쿼리는 SQL Server 데이터베이스에서 잘 작동하는 것 같습니다.

select column, COUNT(column) AS MOST_FREQUENT
from TABLE_NAME
GROUP BY column
ORDER BY COUNT(column) DESC

결과:

column          MOST_FREQUENT
item1           highest count
item2           second highest
item3           third higest
..
..


답변

SQL Server와 함께 사용합니다.

제한 명령 지원이 없기 때문에.

이 경우 상위 1 명령을 사용하여 특정 열에서 발생하는 최대 값을 찾을 수 있습니다 (값).

SELECT top1
    `value`,
    COUNT(`value`) AS `value_occurrence`
FROM
    `my_table`
GROUP BY
    `value`
ORDER BY
    `value_occurrence` DESC;


답변

테이블이 ‘ SalesLT.Customer‘이고 알아 내려는 열이 ‘ CompanyName‘이고 AggCompanyName별칭이라고 가정합니다.

Select CompanyName, Count(CompanyName) as AggCompanyName from SalesLT.Customer
group by CompanyName
Order By Count(CompanyName) Desc;


답변

LIMIT를 사용할 수 없거나 LIMIT는 쿼리 도구의 옵션이 아닙니다. 대신 “ROWNUM”을 사용할 수 있지만 하위 쿼리가 필요합니다.

SELECT FIELD_1, ALIAS1
FROM(SELECT FIELD_1, COUNT(FIELD_1) ALIAS1
    FROM TABLENAME
    GROUP BY FIELD_1
    ORDER BY COUNT(FIELD_1) DESC)
WHERE ROWNUM = 1