Google bigquery 从日期到时间按24小时分组
我需要每小时统计事件,即使在某个小时内没有事件。 在不创建临时表的情况下,如何将这些小时包括在组中?我查看了所有类似的帖子,但找不到答案。 比方说Google bigquery 从日期到时间按24小时分组,google-bigquery,Google Bigquery,我需要每小时统计事件,即使在某个小时内没有事件。 在不创建临时表的情况下,如何将这些小时包括在组中?我查看了所有类似的帖子,但找不到答案。 比方说 select extract(hour from time(date_time)) as Hour, count(*) from table_A group by hour order by hour 这让我只在有活动的地方数小时。 我使用的是Bigquery 谢谢您的问题带有SQL标记。对于SQL解决方案,我会动态生成24小时并交叉连接到该解决方
select extract(hour from time(date_time)) as Hour, count(*)
from table_A
group by hour
order by hour
这让我只在有活动的地方数小时。
我使用的是Bigquery
谢谢您的问题带有SQL标记。对于SQL解决方案,我会动态生成24小时并交叉连接到该解决方案。例如:
;WITH twenty_four_hour_range AS
(
SELECT
1 AS _hour
UNION ALL
SELECT
1 + _hour
FROM twenty_four_hour_range
WHERE 1 + _hour <=24
)
select _hour, COUNT(*)
from table_A CROSS JOIN
twenty_four_hour_range
group by twenty_four_hour_range._hour
order by 1
您的问题已标记为SQL。对于SQL解决方案,我会动态生成24小时并交叉连接到该解决方案。例如:
;WITH twenty_four_hour_range AS
(
SELECT
1 AS _hour
UNION ALL
SELECT
1 + _hour
FROM twenty_four_hour_range
WHERE 1 + _hour <=24
)
select _hour, COUNT(*)
from table_A CROSS JOIN
twenty_four_hour_range
group by twenty_four_hour_range._hour
order by 1
使用generate_array和unnest生成小时数:
select h, count(a.date_time)
from unnest(generate_array(0, 23)) h left join
table_A a
on extract(hour from time(a.date_time)) = h
group by h
order by h;
这比Postgres数据库支持的generate_系列稍微复杂一些,但它以一种简单的方式完成这项工作。使用generate_array和Unest生成小时数:
select h, count(a.date_time)
from unnest(generate_array(0, 23)) h left join
table_A a
on extract(hour from time(a.date_time)) = h
group by h
order by h;
这比Postgres数据库支持的generate_系列稍微复杂一些,但它以一种简单的方式完成这项工作。欢迎使用Stack Overflow!如果您使用的是BigQuery,请不要标记其他3个RDBMS。事实上,这会让你向更多人寻求帮助的志愿者感到困惑,因此你不太可能得到答案。每个RDBMS都有不同的语法,如果我们不知道您使用的是哪种,那么我们就无法提供正确的解决方案。此外,我们中的许多人并不精通SQL的每一个版本,相反,可能只有1或2个版本。如果您标记了一个我们不知道的RDBMS,那么我们可能会忽略这个问题,因为我们认为我们无法在{MySQL/SQL Server/etc}方面提供帮助。好的,谢谢,我理解,欢迎使用堆栈溢出!如果您使用的是BigQuery,请不要标记其他3个RDBMS。事实上,这会让你向更多人寻求帮助的志愿者感到困惑,因此你不太可能得到答案。每个RDBMS都有不同的语法,如果我们不知道您使用的是哪种,那么我们就无法提供正确的解决方案。此外,我们中的许多人并不精通SQL的每一个版本,相反,可能只有1或2个版本。如果您标记了一个我们不知道的RDBMS,那么我们可能会忽略这个问题,因为我们认为我们无法在{MySQL/SQL Server/etc}方面提供帮助。好的,谢谢,我理解