각 ID에 대해 어떤 값이 대부분의 시간을 반복하는지 알려주는 SQL 쿼리를 원합니다. 예를 들어 다음 표를 살펴 보겠습니다.
Id Value
1 10
1 20
1 10
1 10
2 1
1 3
원하는 출력
Id Value Count
1 10 3
2 1 1
위의 예에서 Id 1의 경우 값 10이 대부분 반복되었고 Id 2의 경우 값 1이 대부분 반복되었음을 보여줍니다. 어떤 제안이라도 정말 감사하겠습니다.
사용 rank
아이디가 내림차순으로 자신의 가치 카운트 기반으로하며 1 위를 데리러의 전화 번호에 행 위를 기록했습니다.
select id, value, cnt
from (select id, value, count(*) as cnt,
rank() over (partition by id order by count(*) desc) as rnk
from t
group by id, value) x
where rnk = 1
고든의 의견에 경우 관계의 경우, ID 당 하나 개의 값을 필요 기반으로 사용하는 row_number
대신 rank
으로, rank
반환 값 카운트의 모든 관계를.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다