如果这真的很基本,我很抱歉,但是:
我觉得在某些时候我没有这个问题,现在我有了,所以要么我以前做的事情完全不同,要么我的语法跳过了一步。
例如,我有一个查询,我需要返回包含某些数据的所有行以及另一列,其中一个列的总数。如果事情按我的预期工作,它看起来像:
SELECT
order_id,
cost,
part_id,
SUM(cost) AS total
FROM orders
WHERE order_date BETWEEN xxx AND yyy
我会得到我的订单的所有行,并将总数添加到每个订单的末尾。我知道每次的总数都是一样的,但这是意料之中的。现在为了让它工作,我正在使用:
SELECT
order_id,
cost,
part_id,
(SELECT SUM(cost)
FROM orders
WHERE order_date BETWEEN xxx AND yyy) AS total
FROM orders
WHERE order_date BETWEEN xxx AND yyy
基本上两次运行相同的查询,一次用于总数,一次用于其他数据。但是,如果我想要 SUM 并且我不知道平均成本,那么我会执行相同的查询 3 次,这似乎真的是错误的,这就是为什么我认为我正在做一些非常基本的错误。
非常感谢任何帮助。