繁体   English   中英

任何人都可以帮助我根据我的要求提供 SQL

[英]can anybody help me to provide SQL as per my request

select created_date,count(*) tot 
from smart_meters_t 
group by created_date 
order by created_date;

我想要在 Oracle 语言中使用此代码。请任何人对此提供帮助,这将非常有帮助。

created_date  tot 
12/01/2019    148
06/02/2019    1
28/02/2019    48

我需要如下数据

 created_date  tot 
    12/01/2019   148
    13/01/2019   148
    14/01/2019   148
    .
    .
    .
    .
    05/01/2019   148
    06/02/2019    1
    07/02/2019    1
    08/02/2019    1
    09/02/2019    1
    .
    .
    .
    .
    27/02/2019    1
    28/02/2019    48

您可以使用以下方法生成一系列日期:

select date '2019-01-02' + level
from dual
connect by date '2019-01-01' + level < date '2019-02-28'

然后剩下的可以用left joinlag()来完成:

with dates as (
      select (date '2019-01-02' + level) as dte
      from dual
      connect by date '2019-01-01' + level < date '2019-02-28'
     )
select d.dte,
       coalesce(t.tot,
                lag(t.tot ignore nulls) over (order by d.dte)
               ) as tot
from dates d left join
     t
     on d.dte = t.created_date
order by d.dte;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM