SQL分析样例
unix timestmap格式化
场景 1 :使用strftime
格式化时间戳。
例子1:格式化_time
为类似“2021-07-09 14:34:50.419359”这样的字符串。
SELECT
strftime(_time, '%Y-%m-%d %T') AS str_time,
_time
FROM
_internal
查询分析结果:
例子2:格式化_time
为类似“2021-07-09 14:34:50.419359 +0000”这样的字符串。其中'%z'为 UTC 时间偏移量的数字表示。
SELECT
strftime(_time, '%Y-%m-%d %T %z') AS str_time,
_time
FROM
_internal
查询分析结果:
场景 2 : 使用strptime
将时间戳字符串转换成时间戳。
例子1:字符串类型字段str_time
为符合格式类似“2021-07-09 14:34:50”这样的时间戳字符串,通过strptime
将其转换成时间戳格式。
SELECT
strptime(str_time, '%Y-%m-%d %T') AS _time,
str_time
FROM
_internal
样例转换结果:
例子2:字符串类型字段str_time
为符合格式类似“2021-07-09 14:34:50”这样的时间戳字符串,时区分别为 UTC 时区、上海时区和默认时区,通过strptime
将其转换成时间戳格式。
SELECT
strptime(str_time, '%Y-%m-%d %T', 'UTC') as utc_ts,
strptime(str_time, '%Y-%m-%d %T', 'Asia/Shanghai') as sh_ts,
strptime(str_time, '%Y-%m-%d %T') as default_ts
From
_internal
样例转换结果:
把数据按照日期分桶,进行聚类统计
思路:使用strftime
将时间戳格式化为日期字符串,然后再进行聚类。
例子1:统计每周的事件数量。%Y-%U
是把时间格式化为当年的第几周。
WITH base AS (
SELECT
strftime(_time, '%Y-%U') AS year_week
FROM
showroom_data
)
SELECT
COUNT(*) AS event_count,
year_week
FROM
base
GROUP BY
year_week
查询分析结果:
例子2:统计每月的事件数量。%Y-%m
是把时间格式化为年和月。
WITH base AS (
SELECT
strftime(_time, '%Y-%m') AS year_month
FROM
showroom_data
)
SELECT
COUNT(*) AS event_count,
year_month
FROM
base
GROUP BY
year_month
查询分析结果: