我有一張包含用戶串列的表格:
USER_TABLE
userid username
1 paul
2 david
3 mary
我需要為每個用戶創建一個時間序列(以 10 分鐘為間隔的時間戳),結果如下:
USER_TIMESERIES_TABLE
userid timestamp
1 2022-10-15 00:00:00
1 2022-10-15 00:10:00
1 2022-10-15 00:20:00
1 2022-10-15 00:30:00
1 2022-10-15 00:40:00
...
2 2022-10-15 00:00:00
2 2022-10-15 00:10:00
2 2022-10-15 00:20:00
2 2022-10-15 00:30:00
2 2022-10-15 00:40:00
...
3 2022-10-15 00:00:00
3 2022-10-15 00:10:00
3 2022-10-15 00:20:00
3 2022-10-15 00:30:00
3 2022-10-15 00:40:00
...
理想情況下,所有這些都可以在不需要臨時表的情況下完成。
到目前為止,我已經設法創建了一個時間序列選擇:
with recursive times as (
select date_format( "2022-10-11 09:00:00","%Y-%m-%d %H:%i:%s") as time
union all
select date_format(time interval 1 minute,"%Y-%m-%d %H:%i:%s") as time_interval
from times
where time < date("2022-10-15 00:00:00")
)
這使:
TIMESERIES_SELECT
time
2022-10-15 00:00:00
2022-10-15 00:10:00
2022-10-15 00:20:00
2022-10-15 00:30:00
2022-10-15 00:40:00
...
但是還沒有找到將每個用戶行映射到完整時間序列的方法。
感謝任何幫助!
謝謝
uj5u.com熱心網友回復:
with recursive times as (
...your query that generates the time series...
)
select userid, time
from user_table
cross join times;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/516996.html
標籤:mysql
