如何获得列中最常见的值?

时间:2013-03-28 09:21:52

标签: sql oracle10g

我有一个名为'Price'列的表格,需要获得最常见的价值。最简单的方法是什么?

2 个答案:

答案 0 :(得分:2)

一个选项可能是

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

如果有两个(或更多)价格经常出现,则此查询将返回两个价格。如果你想保证一行,你需要告诉我们你想如何处理关系。

答案 1 :(得分:0)

我的算法如下:

  1. 第一步:将不同的选择作为集合;
  2. 第二步:不同集合中的foreach项将原始集合中的项目计为diffcollection;
  3. 第三步:从diffcollection中选择max。