[英]Redshift Convert UNIX Timestamp to YYYYMMDD, Collect Cumulative Count, and Group by Date
这里发生了一些事情。 我在下面列出我的逻辑:
选择分类列
转换 unix 时间戳:
date_trunc('day', TIMESPAMP 'epoch' + time_column * INTERVAL '1 second'
收集分类列的累计计数
计数(categorical_column)OVER(PARTITION BY categorical_column ORDER BY date ASC ROW UNBOUNDED PRECEEDING)
GROUP BY date_column, categorical_column
我遇到的问题是,当一天多次发生时,我每天只能得到 1 次计数。 有什么建议么?
SELECT cat_col_1,
cat_col_2,
date_trunc('day', TIMESTAMP 'epoch' + time_col * INTERVAL '1 second'),
count(cat_col_1) OVER (PARTITION BY cat_col_1 ORDER BY time_col ROW UNBOUNDED PRECEEDING)
FROM example_table
GROUP BY time_col, cat_col_1, cat_col_2
答案:将 count(cat_col_1) 包裹在 sum() 中
SELECT cat_col_1,
cat_col_2,
date_trunc('day', TIMESTAMP 'epoch' + time_col * INTERVAL '1 second'),
sum(count(cat_col_1)) OVER (PARTITION BY cat_col_1 ORDER BY time_col ROW UNBOUNDED PRECEEDING)
FROM example_table
GROUP BY time_col, cat_col_1, cat_col_2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.