【统计】Oracle按天统计(详细)

本文介绍如何使用Oracle数据库进行时间维度的数据统计,包括按天、周、月、季度和年的统计数据方法,并提供具体SQL示例代码。

--创建表 Test

CTEATE TABLE TEST(

ID NUMBER NOT NULL,

MODIFIEDTIME DATE NOT NULL

)

--按天统计

SELECT TO_CHAR(T.MODIFIEDTIME,'YYYY-MM-DD') TIME,COUNT(*) COUNT

FROM TEST T

--这里可加查询条件 WHERE TO_CHAR(T.MODIFIEDTIME,'YYYY') = TO_CHAR(SYSDATE,'YYYY')

GROUP BY TO_CHAR(T.MODIFIEDTIME,'YYYY-MM-DD') --根据日期来分组

ORDER BY TO_CHAR(T.MODIFIEDTIME,'YYYY-MM-DD') ASC NULLS LAST --根据日期排序



--注:MODIFIEDTIME 为 表TEST里的时间字段,时间类型

--以上代码可直接在数据库里运行

--假如表里还有个数量的字段,要按天统计数量,可将COUNT(*)改为SUM(1)函数


【统计】Oracle按周统计(详细)

【统计】Oracle按月统计(详细)

【统计】Oracle按季度统计(详细)

【统计】Oracle按年统计(详细)

【统计】按照时间统计总结


Oracle 数据库中,按分组统计是常见的需求,尤其是在生成每日报表或分析数据趋势时。以下是一个通用的 SQL 查询模板,用于按统计数据: ```sql SELECT TO_CHAR(t.CREATED + 15/24, 'YYYY-MM-DD') AS , SUM(1) AS 数量 FROM TB_EXT_TRADE t WHERE t.TID LIKE 'SC%' OR t.TID LIKE 'WSC%' GROUP BY TO_CHAR(t.CREATED + 15/24, 'YYYY-MM-DD') ORDER BY NULLS LAST; ``` ### 说明 1. **TO_CHAR(t.CREATED + 15/24, 'YYYY-MM-DD')**:将 `CREATED` 时间字段转换为日期格式,并调整时区。`15/24` 表示将时间调整为 UTC+0,以匹配本地时区[^1]。 2. **SUM(1)**:统计的记录数量。 3. **WHERE 子句**:可以根据实际需求过滤特定的记录,例如 `t.TID LIKE 'SC%' OR t.TID LIKE 'WSC%'`。 4. **GROUP BY**:按照日期分组,以便进行聚合操作。 5. **ORDER BY**:按日期排序,`NULLS LAST` 确保空值排在最后。 ### 示例:统计指定日期范围内的数据 如果需要统计特定日期范围内的数据,可以使用 `TO_DATE` 函数来指定日期范围: ```sql SELECT TO_CHAR(t.CREATED + 15/24, 'YYYY-MM-DD') AS , COUNT(*) AS 数量 FROM TB_EXT_TRADE t WHERE t.CREATED >= TO_DATE('2023-10-01', 'YYYY-MM-DD') AND t.CREATED < TO_DATE('2023-11-01', 'YYYY-MM-DD') GROUP BY TO_CHAR(t.CREATED + 15/24, 'YYYY-MM-DD') ORDER BY NULLS LAST; ``` ### 说明 1. **TO_DATE('2023-10-01', 'YYYY-MM-DD')**:指定起始日期。 2. **TO_DATE('2023-11-01', 'YYYY-MM-DD')**:指定结束日期,确保统计的是 10 月份的数据。 ### 示例:统计截止到某一的数据 如果需要统计截止到某一的累计数据,可以使用如下 SQL: ```sql SELECT BRANCH_CODE, COUNT(*) AS COUNT_COUNT_ADD FROM SHLD_DEVICE WHERE CREATE_TIME <= TO_DATE('2021-11-18 23:59:59', 'yyyy-mm-dd hh24:mi:ss') GROUP BY BRANCH_CODE; ``` ### 说明 1. **CREATE_TIME <= TO_DATE('2021-11-18 23:59:59', 'yyyy-mm-dd hh24:mi:ss')**:筛选出截止到指定日期的数据。 2. **COUNT(*)**:统计每个 `BRANCH_CODE` 的记录数量[^2]。 这些 SQL 查询可以根据具体需求进行调整,例如更改字段名、表名或添加额外的过滤件。通过这些查询,可以有效地按分组统计 Oracle 数据库中的数据。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值