sql - 希望为每个 ID 填充缺失的时间段为零(Athena SQL)
问题描述
在我的数据中,我正在查看每个用户的季度计数。对于所有缺失的季度,我想将它们归为 0。这是一个示例:
这是我当前的数据集:
ID Qtr Count
1 2018Q1 1
1 2018Q3 1
1 2018Q4 2
2 2018Q1 4
2 2018Q2 6
2 2019Q3 2
2 2019Q4 1
3 2018Q1 8
3 2018Q2 5
3 2018Q3 2
3 2018Q4 4
3 2019Q1 5
更新表:
ID Qtr Count
1 2018Q1 1
1 2018Q2 0
1 2018Q3 1
1 2018Q4 2
1 2019Q1 0
1 2019Q2 0
1 2019Q3 0
1 2019Q4 0
2 2018Q1 4
2 2018Q2 6
2 2018Q3 0
2 2018Q4 0
2 2019Q1 0
2 2019Q2 0
2 2019Q3 2
2 2019Q4 1
3 2018Q1 8
3 2018Q2 5
3 2018Q3 2
3 2018Q4 4
3 2019Q1 5
3 2019Q2 0
3 2019Q3 0
3 2019Q4 0
任何帮助将非常感激。
解决方案
您可以创建包含所有季度的表(例如quarters_
),然后将数据(例如 some_data)加入其中。
create table some_data (year number, quarter number, data varchar2(10));
insert into some_data values(2018,3,'AAAA');
create table quarters_ (signature varchar2(20), year number, quarter_number number);
insert into quarters_ (signature, year, quarter_number) values ('2018Q1', 2018, 1);
insert into quarters_ (signature, year, quarter_number) values ('2018Q2', 2018, 2);
insert into quarters_ (signature, year, quarter_number) values ('2018Q3', 2018, 3);
insert into quarters_ (signature, year, quarter_number) values ('2018Q4', 2018, 4);
insert into quarters_ (signature, year, quarter_number) values ('2019Q1', 2019, 1);
insert into quarters_ (signature, year, quarter_number) values ('2019Q2', 2019, 2);
insert into quarters_ (signature, year, quarter_number) values ('2019Q3', 2019, 3);
insert into quarters_ (signature, year, quarter_number) values ('2019Q4', 2019, 4);
select signature as Qtr, count (s.data) as count
from quarters_ q
left join some_data s on s.quarter = q.quarter_number and s.year = q.year
group by q.signature
推荐阅读
- python - 为什么我在提交处理请求时收到 403 错误?
- python - 使用 cx_Oracle 和 flask_restful 进行分页
- rust - 如何对余额数进行算术运算以避免 NEAR 智能合约溢出?
- flutter - 由于用户更改了应用程序的主题,字体的主题没有正确重建(GetX 状态管理)
- python - 使用递归确定半完美数
- excel - 如何在excel中将列从不同字符转换为10个字符格式?
- php - 当 pm.max_children > 506 时 PHP 7.2 无法启动
- discord - 如何删除用户在 Discord 上删除的类别的频道?
- python - 使用具有不同格式python的正则表达式提取电话号码
- amazon-web-services - 如何添加 cloudwatch 权限以在 serverless.yml 中调用 lambda?