我想从日期字段(“yyyy-mm-dd”)或时间戳字段中按“yyyy-mm”进行分组,以便我可以在多年内对事务数据进行分组和分组,而无需提取单独的查询分组每年一个月。
答案 0 :(得分:4)
SELECT
CONCAT(STRING(YEAR(timestamp)),'-',RIGHT(STRING(100 + MONTH(timestamp)), 2)) AS yyyymm,
<any aggregations here>
FROM YourTable
GROUP BY 1
另一种选择:
SELECT
STRFTIME_UTC_USEC(timestamp, "%Y-%m") AS yyyymm,
<any aggregations here>
FROM YourTable
GROUP BY 1
两个版本都应该使用时间戳或日期
答案 1 :(得分:0)
您可以对标准SQL使用以下内容:
SELECT concat(cast(format_date("%E4Y", cast(current_date() as date)) as string),'-',cast(format_date("%m", cast(current_date() as date)) as string)) as yyyymm, <other aggregations>
FROM <YourTable>
GROUP BY 1;
只需将current_date()替换为包含时间戳的列名即可。