【发布时间】:2010-11-14 14:08:25
【问题描述】:
如果这真的很基本,我很抱歉,但是:
我觉得在某些时候我没有这个问题,现在我有,所以要么我以前做的事情完全不同,要么我的语法跳过了一步。
例如,我有一个查询,我需要返回包含特定数据的所有行以及另一列,其中一个列的总数。如果事情按我的预期工作,它看起来像:
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 次,这似乎真的是错误的,这就是为什么我认为我正在做一些非常基本的错误。
非常感谢任何帮助。
【问题讨论】:
-
看起来你得到了很好的答案,但是以是或否答案形式陈述的问题并不是一个很有帮助的开始,恕我直言。
-
我倾向于写一些对他们来说非常模糊和定性的问题,所以这是我试图更精确的尝试。仍在微调。
标签: mysql database sum aggregate-functions