posts - 535,comments - 60,views - 197万

生成日期列表

SELECT to_date('2017-3-14', 'yyyy-mm-dd') + ROWNUM - 1 as first_login_day,
                               ROWNUM - 1
                          FROM DUAL
                        CONNECT BY ROWNUM <=
                                   trunc(sysdate - 1) -
                                   to_date('2017-3-14', 'yyyy-mm-dd'

 

范例:生成日期和补全某天充值数据

复制代码
select t11.fill_day,
               t11.first_login_day,               
               t12.day_fill_total
          from 
          
          (select t13.first_login_day, t14.fill_day
                  from (SELECT to_date('2017-3-14', 'yyyy-mm-dd') + ROWNUM - 1 as first_login_day,
                               ROWNUM - 1
                          FROM DUAL
                        CONNECT BY ROWNUM <=
                                   trunc(sysdate - 1) -
                                   to_date('2017-3-14', 'yyyy-mm-dd') + 1) t13,
                       (SELECT to_date('2017-3-14', 'yyyy-mm-dd') + ROWNUM - 1 as fill_day,
                               ROWNUM - 1
                          FROM DUAL
                        CONNECT BY ROWNUM <=
                                   trunc(sysdate - 1) -
                                   to_date('2017-3-14', 'yyyy-mm-dd') + 1) t14
                 where t14.fill_day >= t13.first_login_day) t11
                 left join
          (select t5.first_login_day,
                       t6.fill_day,
                       sum(t6.day_fill_total) day_fill_total
                -- t5.first_login_day, t5.channel, t5.accountid, t6.fill_day,  t6.day_fill_total 
                  from t5
                 right outer join (
                                  -- 每日充值
                                  select trunc(t6.stat_time) as fill_day,
                                          t6.accountid,
                                          sum(t6.paymoney) as day_fill_total
                                    from Fill_TABLE t6
                                   where STAT_TIME >= date'2017-3-14'                                     
                                   group by trunc(t6.stat_time), t6.accountid) t6
                    on t5.accountid = t6.accountid
                 group by t5.first_login_day, t6.fill_day) t12
                  on t11.first_login_day = t12.first_login_day and t11.fill_day = t12.fill_day
复制代码

 

posted on   凌度  阅读(909)  评论(1编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
历史上的今天:
2016-04-13 hbase安装
2016-04-13 hive安装
2015-04-13 oracle查看表空间和物理文件大小
2011-04-13 NET Framework 中的并行编程
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示