每月统计记录

Count records per month

我正在尝试计算 2014 年每个月的约会数量,其中日期格式类似于“22-JAN-14” 到目前为止,我已经尝试了这两个代码的变体,并且都出现了 "YEAR": invalid identifier.

代码 1

SELECT count(*), MONTH(dateofappointment) as month, YEAR(dateofappointment) as year
FROM appointment
GROUP BY month
HAVING YEAR(dateofappointment) ='14'
ORDER BY month;

和密码 2

select count(*)
from appointment
group by month(dateofappointment)
having year(dateofappointment) = '14';

感谢任何帮助。

使用Extract参考

SELECT EXTRACT(month FROM dateofappointment) "Month", count(*)
FROM appointment
WHERE EXTRACT(YEAR FROM dateofappointment) = '2014'
GROUP BY EXTRACT(month FROM dateofappointment)
ORDER BY EXTRACT(month FROM dateofappointment);

要有月份名称而不是数字

SELECT TO_CHAR(TO_DATE(EXTRACT(month FROM dateofappointment), 'MM'), 'MONTH') "Month", count(*)
FROM appointment
WHERE EXTRACT(YEAR FROM dateofappointment) = '2014'
GROUP BY EXTRACT(month FROM dateofappointment)
ORDER BY EXTRACT(month FROM dateofappointment);

你的年份应该是一个整数。
另外,除非你的约会发生在公元一世纪,否则你的年份应该是 2014 年。

试试这个:

select  EXTRACT(month FROM dateofappointment), count(*)
from appointment
where EXTRACT(year FROM dateofappointment) = 2014
group by EXTRACT(month FROM dateofappointment)

按月和年的数据,按日期从旧到新排序:

SELECT
    EXTRACT(year FROM dateofappointment) "Year",
    EXTRACT(month FROM dateofappointment) "Month",
    count(*) 
FROM
    appointment 
GROUP BY
    EXTRACT(year FROM dateofappointment),
    EXTRACT(month FROM dateofappointment) 
ORDER BY
    1,
    2;