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
値のカウントに基づいてIDに降順で番号を付け、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
Gordonのコメントに基づいて、同点の場合にIDごとに1つの値のみが必要な場合は、値カウントですべての同点を返すので、のrow_number
代わりにを使用します。rank
rank
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加