我有一个包含4列大量记录的表格。它的结构如下:
DATE_ENTERED EMP_NAME DATA ORIGINATED
01-JAN-20 A 545454 APPLE我想要计算一年中每个月的第一天的记录数量
我们有没有办法获取每个月第一天的数据。
发布于 2020-03-04 17:18:07
在oracle中,您可以在日期使用TRUNC函数,如下所示:
SELECT TRUNC(DATE_ENTERED), COUNT(1) AS CNT
FROM YOUR_TABLE
WHERE TRUNC(DATE_ENTERED) = TRUNC(DATE_ENTERED, 'MON')
GROUP BY TRUNC(DATE_ENTERED, 'MON')请注意,对于DATE_ENTERED,TRUNC(DATE_ENTERED, 'MON')将返回每月的第一天。
干杯!!
发布于 2020-03-04 15:25:25
SELECT Year, Month, COUNT(*)
FROM
(
SELECT
YEAR(DATE_ENTERED) Year
MONTH(DATE_ENTERED) Month
DAY(DATE_ENTERED) Day
FROM your_table
WHERE DAY(DATE_ENTERED) = 1
) A
GROUP BY Year, Month通常情况下,WHERE DAY(DATE_ENTERED) = 1只会在每月初为您提供日期的记录。因此,使用年和月函数,您可以对它们进行分组,以便获得每年和每个月的计数
发布于 2020-03-04 15:27:57
您可以使用类似以下内容:
select * from your_table
where DAY(DATE_ENTERED) = 1
and DATE_ENTERED between '2020-01-01' and '2020-12-31'对于number of count,请使用以下命令:
select count(*) from your_table
where DAY(DATE_ENTERED)= 1
and DATE_ENTERED between '2020-01-01' and '2020-12-31'更新
select * from your_table where Extract(day FROM DATE_ENTERED) = 1 and DATE_ENTERED between '01-JAN-20 ' and '01-DEC-20 ';下面是数据的外观:

查看记录列表
select count(*) from your_table where Extract(day FROM DATE_ENTERED) = 1 and DATE_ENTERED between '01-JAN-20 ' and '01-DEC-20 ';

更新-2
select EXTRACT(month from DATE_ENTERED) as Count,
to_char(to_date(DATE_ENTERED, 'DD-MM-YYYY'), 'Month') from your_table
where Extract(day FROM DATE_ENTERED) = 1 and DATE_ENTERED between '01-JAN-20
'and '01-DEC-20 ' group by EXTRACT(month from DATE_ENTERED),
to_char(to_date(DATE_ENTERED, 'DD-MM-YYYY'), 'Month');下面是输出:

https://stackoverflow.com/questions/60520804
复制相似问题