Oracle10g SQL Oracle 10g请求

Oracle10g SQL Oracle 10g请求,oracle10g,Oracle10g,我明天要做一份报告,我有一个问题无法回答: “查找表中显示最多的月份” 因此,如果有5个“十二月”和3个“二月”,它将显示“十二月” 日期表是表中日期类型为的列 我想是这样的,但我不能让它正常工作 请帮帮我, 谢谢 MySQL: select MonthName(date_table) Mo, count(*) cnt from table Group by MonthName(date_table) order by cnt Desc Limit 1 按月分组 包括计数 按降序排列 限制

我明天要做一份报告,我有一个问题无法回答: “查找表中显示最多的月份”

因此,如果有5个“十二月”和3个“二月”,它将显示“十二月”

日期表是表中日期类型为的列

我想是这样的,但我不能让它正常工作

请帮帮我, 谢谢

MySQL:

select MonthName(date_table) Mo, count(*) cnt
from table 
Group by MonthName(date_table)
order by cnt Desc
Limit 1
  • 按月分组
  • 包括计数
  • 按降序排列
  • 限制到第一个
甲骨文:

With CTE as(
select to_char(date_table,'MONTH') Mo, count(*) cnt
from table
Group by To_char(date_Table, 'MONTH')
order by cnt Desc)
Select Mo from CTE where cnt = (Select max(Cnt) from CTE)
使用过分区语法可能是一种更快的方法

这将首先创建结果,然后使用临时结果获取最大cnt,并且仅显示具有该最大cnt的月份

假设可以列出重复项,那么如果12月和2月都显示5。。。然后呢?两个都给我看,一个给我看


MonthName函数的来源:

谢谢它的帮助,但这并不完全是我所问的,您所写的内容显示:MO CNT 12 2 7 1 1 4 1我想要:MO 12月,例如,如果12月是表中最多的月份。我认为还有一个子请求,那就是只显示最多计数(月)。是的,如果它能在你的例子中显示所有的顶部相等,比如二月和十二月(都是5),那么你想要的是月份名称而不是月份数值?如有更新。假设MySQL不是很重要,它可以是12,但我只想要最重要的,而不是所有月份显示的列表。限制1没有按它应该的方式工作。这是mySQL、Oracle还是SQL Server?修改答案以包含Oracle/MySQLAh的版本好的,我使用的是Oracle 10G,您已经为Oracle、SQL Server和MySQL标记了这些版本。您实际使用的是哪个数据库?不同的数据库支持不同的SQL语法选项。
With CTE as(
select to_char(date_table,'MONTH') Mo, count(*) cnt
from table
Group by To_char(date_Table, 'MONTH')
order by cnt Desc)
Select Mo from CTE where cnt = (Select max(Cnt) from CTE)