跳到主要内容
版本:2.14.0

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

查询分析结果: sql_sample_timestamp_1

例子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

查询分析结果: sql_sample_timestamp_2

场景 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

样例转换结果: sql_sample_timestamp_3

例子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

样例转换结果: sql_sample_timestamp_4

把数据按照日期分桶,进行聚类统计

思路:使用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

查询分析结果: sql_sample_by_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

查询分析结果: sql_sample_by_month