oracle sql 求众数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle sql 求众数相关的知识,希望对你有一定的参考价值。
月份 ID 天数
1月 A1 3
1月 A2 3
1月 A3 3
1月 A4 4
1月 A5 2
1月 A6 3
1月 A7 3
从上表取出月份里出现次数最多的天数
要求得到结论为:
月份 天数
1月 3
因3在1月里出现次数最多
补充
月份 ID 天数
1月 A1 3
1月 A2 3
1月 A3 3
1月 A4 4
1月 A5 2
1月 A6 3
1月 A7 3
2月 A1 4
2月 A2 4
2月 A3 4
2月 A4 4
2月 A5 2
2月 A6 3
2月 A7 3
得到出现最多的天数:
月份 天数
1月 3
2月 4
SQL> select mon,days from t1;
MON DAYS
---------- ----------
1 3
1 3
1 3
1 4
1 2
1 3
1 3
2 4
2 4
2 4
2 4
MON DAYS
---------- ----------
2 2
2 3
2 3
SQL> select mon,days from (
2 select mon,days,row_number()over(partition by mon order by mon,cnt desc) rn from (
3 select mon,days,count(*) cnt from t1 group by mon,days)) where rn = 1;
MON DAYS
---------- ----------
1 3
2 4本回答被提问者和网友采纳 参考技术B select 月份,天数 from table_name where count(天数)=(select max(count(天数)) from table_name); 参考技术C SELECT 月份,天数
FROM t1 as a
GROUP BY 月份,天数
HAVING COUNT(*) =
(SELECT TOP 1COUNT(*)
FROM t1
WHERE 月份 = a.月份
GROUP BY 月份,天数
ORDER BY COUNT(*) DESC
) 参考技术D SELECT MONTH, DAY
FROM (SELECT MONTH, DAY, COUNT(1) CNT
FROM TAB
GROUP BY MONTH, DAY
ORDER BY CNT DESC)
WHERE ROWNUM = 1
leetcode-169求众数
求众数
思路:
记录每个元素出现的次数,然后查找到众数
代码:
class Solution: def majorityElement(self, nums: List[int]) -> int: threshold = len(nums) // 2 d = {} for i in nums: d[i] = d.get(i, 0) + 1 for k, v in d.items(): if v > threshold: return k
大神思路:
对数组排序。因为众数的次数大于数组尺寸的1/2,所以众数肯定位于已排序的中间
代码:
class Solution: def majorityElement(self, nums: List[int]) -> int: nums.sort() return nums[len(nums)//2]
以上是关于oracle sql 求众数的主要内容,如果未能解决你的问题,请参考以下文章