【发布时间】:2016-02-18 17:08:13
【问题描述】:
我正在使用Postgresql 编写一个查询,该查询每天计算差异值的总和并从其他表il_costs 获取单价,这是我尝试通过子查询实现的。在整个查询下方:
SELECT date(read.readed_at),
SUM(read.diff),
(SELECT water_unit
FROM il_costs
WHERE EXTRACT(MONTH FROM created_at) = EXTRACT(MONTH FROM date(read.readed_at))
AND EXTRACT(YEAR FROM created_at) = EXTRACT(YEAR FROM date(read.readed_at)))
FROM il_communicators_readings read
GROUP BY date(read.readed_at)
ORDER BY date(read.readed_at) ASC;
我收到关于未分组列的错误,但我也在分组函数中使用date(read.readed_at):
ERROR: subquery uses ungrouped column "read.readed_at" from outer query
LINE 1: ...(MONTH FROM created_at) = EXTRACT(MONTH FROM date(read.reade...
【问题讨论】:
-
通用 GROUP BY 规则:“如果指定了 GROUP BY 子句,则 SELECT 列表中的每个列引用必须标识一个分组列或者是一个集合函数的参数。”
标签: sql postgresql group-by