0

「価格」列のテーブルがあり、最も頻繁な値を取得する必要があります。最も簡単な方法は何ですか?

4

2 に答える 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. ステップ 1: コレクションとして明確な選択を行います。
  2. ステップ 2: 別個のコレクションの foreach アイテムは、元のコレクションで見つかったアイテムを diffcollection としてカウントします。
  3. ステップ 3: diffcollection から max を選択します。
于 2013-03-28T09:25:43.720 に答える