「価格」列のテーブルがあり、最も頻繁な値を取得する必要があります。最も簡単な方法は何ですか?
質問する
3086 次
2 に答える
2
1つのオプションは次のようなものです
SELECT price
FROM (SELECT price, rank() over (order by cnt desc) rnk
FROM (SELECT price, count(*) cnt
FROM your_table
GROUP BY price))
WHERE rnk = 1
同じ頻度で発生する 2 つ (またはそれ以上) の価格がある場合、両方がこのクエリによって返されます。単一の行を保証したい場合は、引き分けの処理方法を指定する必要があります。
于 2013-03-28T09:28:02.677 に答える
0
私のアルゴリズムは次のとおりです。
- ステップ 1: コレクションとして明確な選択を行います。
- ステップ 2: 別個のコレクションの foreach アイテムは、元のコレクションで見つかったアイテムを diffcollection としてカウントします。
- ステップ 3: diffcollection から max を選択します。
于 2013-03-28T09:25:43.720 に答える