AWS Athena CAST 与 GROUP BY
AWS Athena CAST with GROUP BY
我在 Athena AWS 中有一个带有时间戳字段的 table。我想按日期对它们进行分组。我的 SQL 查询是:
SELECT CAST(createdat AS DATE) FROM conversations GROUP BY createdat
但我的结果如下:
如您所见,group by 不起作用,原因是新 table 的名称字段 _col0
而不是 createdat
。
我也试过:
SELECT CAST(createdat AS DATE) FROM conversations GROUP BY _col0
但我遇到了错误。
有人有什么建议吗?我会感激的
尝试在
组中使用 then same
SELECT CAST(createdat AS DATE)
FROM conversations
GROUP BY CAST(createdat AS DATE)
相同但更短
SELECT CAST(createdat AS DATE)
FROM conversations
GROUP BY 1;
我知道这个问题很老了,但我想首先回答它失败的原因。
Athena 遵循相同的标准 ANSI SQL 约定,该约定定义了处理 SQL 查询的标准。下面是处理顺序
- FROM 子句
- WHERE 子句
- GROUP BY 子句
- HAVING 子句
- SELECT 子句
- ORDER BY 子句
从上面,我们可以看到 GROUP BY 子句在 SELECT 子句之前处理,因此在评估 GROUP BY 子句时别名是未知的。
任何其他两个答案,即列号(AFAIK 它从 1 开始)或完整功能 CAST(createdat AS DATE) 都可以。
SELECT CAST(createdat AS DATE)
FROM conversations
GROUP BY 1;
或
SELECT CAST(createdat AS DATE)
FROM conversations
GROUP BY CAST(createdat AS DATE);
我在 Athena AWS 中有一个带有时间戳字段的 table。我想按日期对它们进行分组。我的 SQL 查询是:
SELECT CAST(createdat AS DATE) FROM conversations GROUP BY createdat
但我的结果如下:
如您所见,group by 不起作用,原因是新 table 的名称字段 _col0
而不是 createdat
。
我也试过:
SELECT CAST(createdat AS DATE) FROM conversations GROUP BY _col0
但我遇到了错误。
有人有什么建议吗?我会感激的
尝试在
组中使用 then sameSELECT CAST(createdat AS DATE)
FROM conversations
GROUP BY CAST(createdat AS DATE)
相同但更短
SELECT CAST(createdat AS DATE)
FROM conversations
GROUP BY 1;
我知道这个问题很老了,但我想首先回答它失败的原因。
Athena 遵循相同的标准 ANSI SQL 约定,该约定定义了处理 SQL 查询的标准。下面是处理顺序
- FROM 子句
- WHERE 子句
- GROUP BY 子句
- HAVING 子句
- SELECT 子句
- ORDER BY 子句
从上面,我们可以看到 GROUP BY 子句在 SELECT 子句之前处理,因此在评估 GROUP BY 子句时别名是未知的。
任何其他两个答案,即列号(AFAIK 它从 1 开始)或完整功能 CAST(createdat AS DATE) 都可以。
SELECT CAST(createdat AS DATE)
FROM conversations
GROUP BY 1;
或
SELECT CAST(createdat AS DATE)
FROM conversations
GROUP BY CAST(createdat AS DATE);