Oracle查询连续几年,几月,几天的数据
Oracle查询连续年,月,日的数据
报表开发有时候需要查询连续时间的数据,但是如果中间有一些时间没有数据,就会导致查询出来的时间不连续。
例如:
-- 年, 品牌,销售额
create table SALES_INFO
(year NUMBER(4),brand VARCHAR2(30),sales NUMBER
)
insert into SALES_INFO values (2022, 'x', 100);
insert into SALES_INFO values (2018, 'x', 100);
insert into SALES_INFO values (2019, 'x', 100);
insert into SALES_INFO values (2021, 'x', 100);
commit;
需要查询x品牌连续5年(2018-2022)的数据,但是没有2020年的数据,正常单表查询就会导致查询出来的结果中间少了2020年的那一行。
解决方法
使用left join,将连续的时间left join业务表,查询x连续5年的结果
select a.year, 'x' as brand, b.salesfrom (select (2022 - rownum + 1) as year from dual connect by rownum < 6) aleft join (select * from SALES_INFO) bon a.year = b.yearorder by a.year
连续几月和几天的数据,如果没有数据的显示为空也是同理
月
连续几月SQL
select to_char(add_months(to_date('202201', 'YYYYMM'), rownum), 'yyyymm') as monthfrom dual
connect by rownum < 6
一周连续七天
一周连续7天SQL
select to_char(sysdate - to_number(to_char(sysdate, 'D')) + level+1, 'YYYY-MM-DD') dayfrom dual
connect by level <= 7
Oracle查询连续几年,几月,几天的数据相关推荐
- oracle查询一小时内数据,ORACLE 查询近一天, 近半小时内的数据
ORACLE 查询近一天, 近半小时内的数据 SELECT 字段 FROM 表名 WHERE 时间字段 BETWEEN SYSDATE-1 AND SYSDATE; // 查询一天内的数据 sysda ...
- Oracle查询当前时间的前1个小时的数据
测试:11:05查询10:00:00~10:59:59的数据 --例如查询09:00:00~09:59:59之间的数据 SELECTTO_CHAR(CRTE_DATE,'yyyy-mm-dd hh24 ...
- oracle 查询一年12个月的sql,获取今年在内的前几年、后几年
-- 一年12月的sql select to_char(sysdate, 'yyyy-') || lpad(level, 2, 0) datevaluefrom dual connect by lev ...
- oracle 查询一年12个月的sql
select to_char(sysdate, 'yyyy-') || lpad(level, 2, 0) datevalue from dual connect by level < 13
- mysql查询连续三天100以上_一个SQL查询连续三天的流量100以上的数据值【SQql Server】...
题目 有一个商场,每日人流量信息被记录在这三列信息中:序号 (id).日期 (date). 人流量 (people).请编写一个查询语句,找出高峰期时段,要求连续三天及以上,并且每天人流量均不少于10 ...
- oracle查询备份大小,【EXPDP】使用EXPDP备份数据时预估大小——ESTIMATE参数
使用EXPDP在完成数据导出时,可以使用ESTIMATE参数评估待导出数据库对象的大小,简单演示一下,供参考.1.查看有关ESTIMATE参数的帮助信息1)查看命令行帮助信息ora10g@secDB ...
- oracle+获取最后一行数据库,获取表最后一条数据
数据库中如何查询表的最后一条记录? MySql : SELECT * FROM 表名 ORDER BY 表_ID DESC LIMIT 1 SQLServer/Oracle : SELECT TOP ...
- oracle的查询连续半个月或者一周的数据
oracle的查询连续半个月或者一周的数据 使用 between and 来查询,如下: 看到当前日期是1-29 再看下查询表的所有数据,可以看到21号到29号有一段连续的数据 然后我们查询今天起倒推 ...
- oracle号码段拆开,学习-SQL查询连续号码段的巧妙解法
学习-SQL查询连续号码段的巧妙解法 在ITPUB上有一则非常巧妙的SQL技巧,学习一下,记录在这里. 最初的问题是这样的:我有一个表结构, fphm,kshm 2014,00000001 2014, ...
最新文章
- 2017icpc沈阳 G Infinite Fraction Path BFS+剪枝
- Ansible基础一Playbook(二)
- Closing Spring root WebApplicationContext
- 023_运行时变量和范围
- ASP.NET Core 集成 React SPA 应用
- 一些来自STL的好东西
- 转录组差异表达分析工具Ballgown
- cesium label 显示隐藏到地底下
- 线性代数向量乘法_标量乘法属性1 | 使用Python的线性代数
- 【转载】Android之用PopupWindow实现弹出菜单
- 英特尔发布P900 Optane固态盘 而主打的市场并非数据中心
- python支持arcpy的版本_ArcPy开发IDE
- PPT图形的多种玩法(师从于珞珈老师)
- vue jsonp跨域
- Base64编码简介
- qt5的configure选项说明(2)
- RSA 中根据 (N, e, d) 求 (p, q)
- 五环电阻和四环电阻的区别是什么
- HTML侧面导航栏效果
- 手写tomcat socket closed_ipad pencil2019防误触电容笔苹果air3触屏控手写笔mini5绘画202010元优惠券券后价65元...