IT박스

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

itboxs 2020. 7. 25. 10:43
반응형

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;

column및을 교체하십시오 my_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;

Assuming Table is 'SalesLT.Customer' and the Column you are trying to figure out is 'CompanyName' and AggCompanyName is an Alias.

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

If you can't use LIMIT or LIMIT is not an option for your query tool. You can use "ROWNUM" instead, but you will need a sub query:

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

If you have an ID column and you want to find most repetitive category from another column for each ID then you can use below query,

Table:

enter image description here

Query:

SELECT ID, CATEGORY, COUNT(*) AS FREQ FROM TABLE GROUP BY 1,2 QUALIFY ROW_NUMBER() OVER(PARTITION BY ID ORDER BY FREQ DESC) = 1;

Result:

enter image description here


One way I like to use is:

select ,COUNT()as VAR1 from Table_Name

group by

order by VAR1 desc

limit 1

참고URL : https://stackoverflow.com/questions/12235595/find-most-frequent-value-in-sql-column

반응형