Sql 如何获取列中最频繁的值?
我有一个列为“Price”的表,需要获取最频繁的值。最简单的方法是什么?我的算法如下:Sql 如何获取列中最频繁的值?,sql,oracle10g,Sql,Oracle10g,我有一个列为“Price”的表,需要获取最频繁的值。最简单的方法是什么?我的算法如下: 第一步:将不同的选择作为一个集合 第二步:foreach item in distinct collection将在原始集合中找到的项计数为diffcollection 第三步:从diffcollection中选择max 一种选择是 SELECT price FROM (SELECT price, rank() over (order by cnt desc) rnk FROM (SE
一种选择是
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
如果有两个(或更多)价格出现的频率相同,则此查询将返回这两个价格。如果你想保证一行,你需要告诉我们你想如何处理关系。这可以通过一条SQL语句来实现……但是,算法有什么不同吗?没有,但效率较低。