gpt4 book ai didi

SQL:如果某行不存在,则返回 '0'

转载 作者:行者123 更新时间:2023-12-02 09:25:53 24 4
gpt4 key购买 nike

我有一个 SQL 查询,它显示 countdatetime

输出如下:

enter image description here

这是我的 SQL 查询:

select 
count(*),
to_char(timestamp, 'MM/DD/YYYY'),
to_char(timestamp, 'HH24')
from
MY_TABLE
where
timestamp >= to_timestamp('03/01/2016','MM/DD/YYYY')
group by
to_char(timestamp, 'MM/DD/YYYY'), to_char(timestamp, 'HH24')

现在,在 COUNT 列中,如果该小时的计数不存在,我想显示 0。因此,2016 年 3 月 2 日上午 8 点计数6。然后在上午 9 点,计数为 0,因此该行没有显示。我想显示该行。在 10am11am 时,会显示计数,然后转到第二天。

那么如何显示 0count 呢?我想显示每天0计数每小时,无论是0还是6还是其他。谢谢:)

最佳答案

使用分区外连接:

SELECT m.day,
h.hr,
COALESCE( freq, 0 ) AS freq
FROM ( SELECT LEVEL - 1 AS hr
FROM DUAL
CONNECT BY LEVEL <= 24
) h
LEFT OUTER JOIN
( SELECT COUNT(*) AS freq,
TO_CHAR( "timestamp", 'mm/dd/yyyy' ) AS day,
EXTRACT( HOUR FROM "timestamp" ) AS hr
FROM MY_TABLE
WHERE "timestamp" >= TIMESTAMP '2016-03-01 00:00:00'
GROUP BY
TO_CHAR( "timestamp", 'mm/dd/yyyy' ),
EXTRACT( HOUR FROM "timestamp" )
) m
PARTITION BY ( m.day, m.hr )
ON ( m.hr = h.hr );

关于SQL:如果某行不存在,则返回 '0',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38109179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com