【问题标题】:Finding Most instances of a month查找一个月的大多数实例
【发布时间】:2014-07-03 08:42:46
【问题描述】:

所以这几乎就是表格(已经缩小了所需的列)

DATEREGIS

10-AUG-95 
02-MAY-01
12-NOV-98
09-OCT-99
12-NOV-98
2-NOV-00
12-AUG-01

我想做的是创建一个查询来查找最繁忙的月份。

这就是我现在所拥有的,但它有各种各样的错误,我一生都无法弄清楚这一点。

SELECT 
    dateregistered, count(dateregistered) as count
FROM 
    pet
HAVING 
    count = MAX(count)
GROUP BY 
    dateregistered;

如有任何帮助,我们将不胜感激。

EDIT* DBMS 是 SQL*Plus

【问题讨论】:

  • SQL Plus 不是数据库 - 它是 Oracle 的开发人员工具(这是实际的 数据库系统在这里....)

标签: sql oracle count


【解决方案1】:

按月分组并计数。按计数降序排序并从此列表中选择第一行。

SELECT *
FROM
(
  SELECT to_char(dateregistered,'mm') as month, count(*) as cnt
  FROM pet
  GROUP BY to_char(dateregistered,'mm')
  ORDER BY count(*) DESC
)
WHERE ROWNUM = 1;

【讨论】:

    【解决方案2】:

    试试这个

    Select Month,max(count)
    from 
    (
    SELECT datepart(mm,dateregistered) Month, count(*) as count
    FROM pet
    Group by datepart(mm,dateregistered);
    )t
    group by Month
    

    【讨论】:

    • 这就是我得到的:第 6 行出现错误:ORA-00907:缺少右括号 SQL> SP2-0042:未知命令“)t” - 其余行被忽略。
    【解决方案3】:

    你可以参考这个link了解更多的mysql函数。

    SELECT MONTHNAME(dateregistered), count(dateregistered) as count
    FROM `pet` 
    group by MONTH(dateregistered)
    order by MONTH(dateregistered) desc
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-01
      • 1970-01-01
      • 2021-01-19
      • 1970-01-01
      • 2019-10-24
      • 1970-01-01
      相关资源
      最近更新 更多