SQL:如何在分组中使用sum by

SQL:如何在分组中使用sum by,sql,Sql,我不知道为什么我在GROUP BY中写入总计,sql向我发送错误。。标识符无效 我不知道该怎么解决这个问题 谢谢。列“TOTAL”是SUM(COUNT('X')*price)的别名。 它不能用作GROUP BY子句中的列标识符。您必须使用GROUP BY SUM(COUNT('X')*price),因为在分组时“TOTAL”是未知的/不是一列。 使用分组后,可以在HAVING子句中引用“TOTAL”。 在任何情况下,您使用的SQL的版本/类型都不允许这样做 另外,你为什么要数“X”?X是一个固定

我不知道为什么我在GROUP BY中写入总计,sql向我发送错误。。标识符无效

我不知道该怎么解决这个问题

谢谢。

列“TOTAL”是SUM(COUNT('X')*price)的别名。 它不能用作GROUP BY子句中的列标识符。您必须使用GROUP BY SUM(COUNT('X')*price),因为在分组时“TOTAL”是未知的/不是一列。 使用分组后,可以在HAVING子句中引用“TOTAL”。 在任何情况下,您使用的SQL的版本/类型都不允许这样做

另外,你为什么要数“X”?X是一个固定值,不依赖于任何列。如果要计算每一行,只需使用count(1)或count(*)。此外,您不需要计算总数。计数已被求和

您应该发布代表和成本的结构。您的链接图像没有足够的信息支持您编写的查询

SELECT  idteam,
        job,
        price,
        COUNT('X') as INFORMS,
        SUM(COUNT('X') * price) as TOTAL
FROM REP 
JOIN COSTS ON (job = categ AND to_number(to_char(REP,'YYYY')) = year)
GROUP BY idteam, job, price, TOTAL
ORDER BY IDTEAM;

为什么您要尝试使用分组列表中的总和?这没有意义,因为总和在属于组的行上。还有,为什么要嵌套聚合?显示示例源数据和所需结果。也许您可以提供一些示例数据以及您希望从中得到的最终结果,因为查询有很多问题……最后,您使用的RDM作为答案将根据需要的SQL方言进行调整。
select
    idteam,
    -- job, /* not selected since it would need to be grouped*/
    sum(price) as 'theSUM'
from REP
join COSTS
    on REP.categ = COSTS.job
    and COSTS.year = 2016
group by idteam
order by idteam