如何在 presto SQL 中按月分组
Posted
技术标签:
【中文标题】如何在 presto SQL 中按月分组【英文标题】:How to group by month in presto SQL 【发布时间】:2021-12-05 05:53:44 【问题描述】:我正在尝试在 Presto SQL 中按月分组。 我试过这个:
select
date_trunc('month', CAST(date AS date)) date_month,
sum(gross_revenue,0) AS 'monthly_net_revenue'
from gross_revenue_calculator
group by date_trunc('month', date)
这给了我以下错误:
Malformed query: line 61:27: mismatched input ''monthly_net_revenue''. Expecting: <identifier>
预期输出:
October: $102.12
November: $90.12
【问题讨论】:
删除引号字符:AS monthly_net_revenue
。并使用GROUP BY date_month
。
没用:现在说:FAILED: Presto error: COLUMN_NOT_FOUND: line 19:10: Column 'date_month' cannot be resolved
这是 presto 错误/问题 - SQL 语法允许引用 GROUP BY 中的输出列...如果这在 presto 中是不可能的,那么在 GROUP BY 中使用一个与输出表达式字面匹配的表达式(删除 CAST - 这显然是多余的)。无论如何,我之前评论的第一部分是您在问题中发布的错误的根源 - 修复它。
【参考方案1】:
您不应该使用单引号作为列名,无论是单引号还是双引号,您也可以像在 WITH
子句中那样在 GROUP BY
中按索引引用列:
select
date_trunc('month', CAST(date AS date)) date_month,
sum(gross_revenue,0) AS monthly_net_revenue
from gross_revenue_calculator
group by 1
【讨论】:
以上是关于如何在 presto SQL 中按月分组的主要内容,如果未能解决你的问题,请参考以下文章
mysql 如何按月分组查询出当前年度每个月的短信数量(数据库中这个月要是为空的话就用0条怎么显示出来)
WordPress 查询:按年份 DESC 对帖子进行分组,然后在每个组中按月 ASC 发布帖子