我有一个 select 语句,它给出了一个时间范围内的活动。例如
Hour | Action | Count
---------------------
00 | a1 | 23
00 | a2 | 48
01 | a1 | 16
02 | null | null
03 | a1 | 5
04 | a2 | 2
您会看到,由于产生了这个结果的分组,所以没有计数 01 小时、动作 02 等等。我想要的是以下内容:
Hour | Action | Count
---------------------
00 | a1 | 23
00 | a2 | 48
01 | a1 | 16
01 | a2 | 0
02 | a1 | 0
02 | a2 | 0
03 | a1 | 5
03 | a2 | 0
04 | a1 | 0
04 | a2 | 2
为此,我正在考虑确定行操作的不同值,然后将其与同一个表连接起来。这在 SQL 代码中是这样的:
select distinct(t2.action) as action
from t2 as t1
left join (select hour, action, count from <whatever to get the table>) as t2
on t1.action = t2.action
但是如果我这样做,我可以理解地得到表 t2 在 t1 的 select 语句中无效的错误。
请帮助我提供任何建议以完成此操作。但我不想在原始表上做不同的(它有 5000 万个条目)。
提前致谢!