提问人:Sohan 提问时间:8/10/2023 更新时间:8/10/2023 访问量:19
使用 Google SQL 将 TIME (1-24) 缩放为字符串(五个类别)
Using Google SQL to cast TIME (1-24) scale into string(five categories)
问:
我想将start_time_of_day转换为整数,以便将其分为 5 类:
清晨 03:01 - 07:00 上午: 07:01 - 12:00 下午 12:01 - 17:00 晚上 17:01 - 22:00 深夜 22:01 - 03:00
然后将它们重新转换为字符串以说出类别名称
我不确定该怎么做。一旦将它们转换为数字,然后将它们转换回字符串,我是否需要创建一个单独的表?或者,我可以在一个查询中执行此操作吗?
答:
0赞
Mikhail Berlyant
8/10/2023
#1
请考虑以下方法 (BigQuery Standard SQL)
with categories as (
select time(3,0,1) as start, time(7,0,0) as finish, 'early morning' as category union all
select time(7,0,1), time(12,0,0), 'morning' union all
select time(12,0,1), time(17,0,0), 'afternoon' union all
select time(17,0,1), time(22,0,0), 'evening' union all
select time(22,0,1), time(23,59,59), 'night' union all
select time(0,0,0), time(3,0,0), 'night'
)
select t.*, category
from your_table t
left join categories
on time(timestamp_trunc(started_at, second)) between start and finish
评论