【发布时间】:2021-12-29 14:00:10
【问题描述】:
我在 GBQ 有这张表:
ClientID Type Month
XXX A 4
YYY C 4
FFX B 5
FFF B 6
XXX C 6
XXX A 6
YRE C 7
AAR A 7
FFF A 8
EGT B 8
FFF B 9
ETT C 9
我正在计算每个 ClientID 和 月 的 Type 数量,使用这个基本查询:
SELECT ClientID,
COUNT(DISTINCT Type) NbTypes,
Month
FROM Table
GROUP BY ClientID, Month
结果如下所示:
ClientID NbTypes Month
XXX 1 4
XXX 2 6
FFF 1 6
FFF 1 8
FFF 1 9
... ... ...
我需要做的是,计算 每个 ClientID 的类型数和 每个月:过去 3 个月。
例如:
- 对于
ClientID= XXX 和Month= 8 :我想要Type的计数,其中Month= 6 AND @ 987654328@ = 7 ANDMonth= 8
有没有办法用GROUP BY 做到这一点?
谢谢
【问题讨论】:
-
如果当前月份是1(一月)应该如何进行计算
-
@GeorgeJoseph 这将是第 1 个月。对于 2 月,它将是 1 和 2。它应该总结过去 3 个月,但如果它们不存在,则计为 0
-
您是否只有月份列作为 int?没有要使用的年份或日期列?
标签: sql google-bigquery