gpt4 book ai didi

SQL 查询帮助(高级 - 对我来说!)

转载 作者:行者123 更新时间:2023-12-04 23:52:10 27 4
gpt4 key购买 nike

我对我尝试编写的 SQL 查询有疑问。

我需要从数据库中查询数据。该数据库除其他外,还包括以下 3 个字段:

Account_ID #, Date_Created, Time_Created

我需要编写一个查询,告诉我每小时开设了多少个帐户。

我写过上述查询,但有时创建了 0 个帐户,因此这些“小时数”未填充在结果中。

例如:

Volume Date__Hour
435 12-Aug-12 03
213 12-Aug-12 04
125 12-Aug-12 06

如上例所示,第 5 小时没有开设任何账户。

有没有一种方法可以使结果填充小时但显示该小时开设的 0 个帐户?我希望结果的示例:

日期_小时
435 2012 年 8 月 12 日 03
213 2012 年 8 月 12 日 04
0 2012 年 8 月 12 日 05
125 2012 年 8 月 12 日 06

谢谢!

更新:这是我目前所拥有的

SELECT count(*) as num_apps, to_date(created_ts,'DD-Mon-RR') as app_date, to_char(created_ts,'HH24') as app_hour 
FROM accounts
WHERE To_Date(created_ts,'DD-Mon-RR') >= To_Date('16-Aug-12','DD-Mon-RR')
GROUP BY To_Date(created_ts,'DD-Mon-RR'), To_Char(created_ts,'HH24')
ORDER BY app_date, app_hour

最佳答案

要获得您想要的结果,您需要创建一个表(或使用查询生成“临时”表),然后使用左连接到您的计算查询以获取每小时的行 - 即使是那些0 卷。

例如,假设我有一个包含 app_date 和 app_hour 字段的表。还假设此表中有一行代表您希望报告的每一天/每一小时。

查询将是:

SELECT NVL(c.num_apps,0) as num_apps, t.app_date, t.app_hour
FROM time_table t
LEFT OUTER JOIN
(
SELECT count(*) as num_apps, to_date(created_ts,'DD-Mon-RR') as app_date, to_char(created_ts,'HH24') as app_hour
FROM accounts
WHERE To_Date(created_ts,'DD-Mon-RR') >= To_Date('16-Aug-12','DD-Mon-RR')
GROUP BY To_Date(created_ts,'DD-Mon-RR'), To_Char(created_ts,'HH24')
ORDER BY app_date, app_hour
) c ON (t.app_date = c.app_date AND t.app_hour = c.app_hour)

关于SQL 查询帮助(高级 - 对我来说!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12696723/

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