求和表达式聚合错误
Sum Expression Aggregate Error
我正在重写这个问题,因为 Gordon Linoff 告诉我,如果我编辑我的另一个问题,它可能会显得粗鲁——所以这不是重复,只是更正。
我正在尝试编写一个代码,用于对我填写查询时出现的所有订单的价格求和。例如,如果我输入 ID 范围 1-60,我希望创建一个汇总列,然后汇总 ID 1-60 的所有价格。
我以为只要创建一个 SUM(.....) AS Exp 1 就足够简单了,但它告诉我 ID 和聚合函数有问题。
我希望能够看到单独的价格,以及包含所有这些价格总和的新列。我计划稍后在 table 中添加更多的数据列。
我当前的代码如下所示:
SELECT table.ID, table.Price, SUM(table.Price) AS Exp 1
FROM table
WHERE table.ID BETWEEN StartID AND EndID
感谢您的帮助
您的聚合语句存在概念错误。当您 运行 此查询时,WHERE 子句将首先评估以排除所有不在用户指定的起点和终点之间的 ID。然后,您错过了 GROUP BY 子句来告诉它需要分组的内容。删除 table.Price 字段,否则您将获得每个价格的唯一记录,这不是您想要的。
SELECT t.ID, SUM(t.Price) AS Price_Summary
FROM table t
WHERE t.ID BETWEEN StartID AND EndID
GROUP BY t.ID
此外,别名将有助于提高可读性。
编辑
我认为这可能是您想要达到的目的,但我仍然不清楚。
SELECT t.ID, SUM(t.Price) AS Price_Summary,
(SELECT SUM(t2.Price) FROM table t2 WHERE t2.ID BETWEEN StartID AND EndID) AS Total_Price
FROM table t
WHERE t.ID BETWEEN StartID AND EndID
GROUP BY t.ID
这将为您提供包含所有 ID 的结果集、具有该 ID 的所有物品的价格总和,以及总和。所以它看起来像这样:
ID | Price_Summary | Total_Price
1 10 60
2 30 60
3 20 60
我正在重写这个问题,因为 Gordon Linoff 告诉我,如果我编辑我的另一个问题,它可能会显得粗鲁——所以这不是重复,只是更正。
我正在尝试编写一个代码,用于对我填写查询时出现的所有订单的价格求和。例如,如果我输入 ID 范围 1-60,我希望创建一个汇总列,然后汇总 ID 1-60 的所有价格。
我以为只要创建一个 SUM(.....) AS Exp 1 就足够简单了,但它告诉我 ID 和聚合函数有问题。
我希望能够看到单独的价格,以及包含所有这些价格总和的新列。我计划稍后在 table 中添加更多的数据列。
我当前的代码如下所示:
SELECT table.ID, table.Price, SUM(table.Price) AS Exp 1
FROM table
WHERE table.ID BETWEEN StartID AND EndID
感谢您的帮助
您的聚合语句存在概念错误。当您 运行 此查询时,WHERE 子句将首先评估以排除所有不在用户指定的起点和终点之间的 ID。然后,您错过了 GROUP BY 子句来告诉它需要分组的内容。删除 table.Price 字段,否则您将获得每个价格的唯一记录,这不是您想要的。
SELECT t.ID, SUM(t.Price) AS Price_Summary
FROM table t
WHERE t.ID BETWEEN StartID AND EndID
GROUP BY t.ID
此外,别名将有助于提高可读性。
编辑
我认为这可能是您想要达到的目的,但我仍然不清楚。
SELECT t.ID, SUM(t.Price) AS Price_Summary,
(SELECT SUM(t2.Price) FROM table t2 WHERE t2.ID BETWEEN StartID AND EndID) AS Total_Price
FROM table t
WHERE t.ID BETWEEN StartID AND EndID
GROUP BY t.ID
这将为您提供包含所有 ID 的结果集、具有该 ID 的所有物品的价格总和,以及总和。所以它看起来像这样:
ID | Price_Summary | Total_Price
1 10 60
2 30 60
3 20 60