在GROUP BY中使用时间戳函数



我正在处理一个大型交易数据集,希望按月对单个客户交易的计数进行分组。我无法使用GROUP BY中的时间戳函数,并返回以下错误:

BAD_QUERY(GROUP BY中的表达式STRFTIME_UTC_USEC([DATESTART],'%b')无效)

有没有一个简单的解决方法可以实现这一点,或者我应该建立一个日历表(这可能是最简单的选项)?

您必须使用别名:

SELECT STRFTIME_UTC_USEC(DATESTART, '%b') as month, COUNT(TRANSACTION)
FROM datasetId.tableId
GROUP BY month

@Charles是正确的,但作为旁白,您也可以按列编号分组。

SELECT STRFTIME_UTC_USEC(DATESTART, '%b') as month, COUNT(TRANSACTION) as count
FROM [datasetId.tableId]
GROUP BY 1
ORDER BY 2 DESC