如何在SQL子查询中使用聚合函数?嵌套SUM查询报错求助
问题解决
你的SQL报错核心原因是FROM子句中的子查询(派生表)必须指定别名,大多数SQL数据库都有这个语法要求,缺失别名会导致括号相关的语法错误。
修正后的代码如下:
SELECT SUM(revenue) FROM ( SELECT YEAR(orderdate), catcode, MONTH(orderdate), SUM(linetotal) AS revenue FROM factSales INNER JOIN dimProducts ON factSales.prodno = dimProducts.prodno GROUP BY YEAR(orderdate), catcode, MONTH(orderdate) ) AS sub; -- 这里添加子查询的别名,名称可自定义,比如sub、sales_summary都可
补充说明:
- 子查询别名只需符合SQL标识符规则即可,无强制命名要求
- 若你不需要子查询里的年份、类别、月份字段,也可以在子查询中只保留
SUM(linetotal) AS revenue,进一步简化查询
内容的提问来源于stack exchange,提问作者Roberto Conti
相关产品推荐
相关产品推荐

