sql - 按小时分组,如果没有数据则为 0
问题描述
我有以下格式查询:
select status as status,
count(*) as count,
EXTRACT(
hour
from creationtime
) AS hour,
creationtime::date as datee
from user_logging_table_detail
where creationtime::date = current_date
and status = 'SUCCESS'
group by hour,
creationtime::date,
status
order by hour asc
status count hour datee
SUCCESS 1 1 8/6/2020
SUCCESS 2 2 8/6/2020
SUCCESS 5 3 8/6/2020
SUCCESS 2 4 8/6/2020
SUCCESS 3 5 8/6/2020
SUCCESS 2 8 8/6/2020
status count hour datee
SUCCESS 1 1 8/6/2020
SUCCESS 2 2 8/6/2020
SUCCESS 5 3 8/6/2020
SUCCESS 2 4 8/6/2020
SUCCESS 3 5 8/6/2020
SUCCESS 0 6 8/6/2020
SUCCESS 0 7 8/6/2020
SUCCESS 2 8 8/6/2020
我的意思是小时(6,7)应该带有(0)值。
解决方案
你的语法看起来像 Postgres,它有方便的generate_series()
:
select gs.hh, ultd.status, count(ultd.status) as count
from generate_series(current_date, now(), interval '1 hour') gs(hh) left join
zainksa_mobileapp.user_logging_table_detail ultd
on ultd.creationtime >= gs.hh and
ultd.creationtime < gs.hh + interval '1 hour' and
ultd.status = 'SUCCESS'
group by gs.hh, ultd.status
order by hour asc
推荐阅读
- java - 哪个 Spring Boot @ConfigurationProperties 注释 bean 拥有 spring.profiles.active 属性?
- javascript - 添加 PushbuttonField 后 iText 5 PdfAction.javaScript() 在 Adobe Acrobat 中不起作用
- javascript - 取消拖动或禁用重新排序
- flutter - 如何在 Void 函数中使用 setstate?
- php - 如何在 Codeigniter PHP 中上传文件 xlsm
- php - Can we use PHP in Node red platform?
- java - 如何向整数类型添加一些特殊值
- angular - 如何在角度更改路线时保留状态组件实例
- powershell - 如何将 MakeCert 命令转换为 New-SelfSignedCertificate 命令?
- apache-kafka - Apache Kafka 可以与桌面应用程序一起使用吗