Postgres聚合问题

时间:2011-08-17 23:21:06

标签: sql postgresql

我不确定为什么这不起作用:

SELECT u.id, u.tag, u.unit_type, Count(p.id) AS num_points
FROM ot2.unit u
INNER JOIN ot2.point p on p.unit_id = u.id
GROUP BY u.id
HAVING Count(p.id) > 800;
  

错误:列“u.tag”必须出现在GROUP BY子句中或用于聚合函数   SQL状态:42803

我已经为group by提供了一个列。

1 个答案:

答案 0 :(得分:2)

错误说的是什么。 u.tag不在小组中,你没有告诉如何将不同的u.tag值汇总到一个。

更具体地说,您有两个选择:

  • 在group by子句中添加u.tag(以及u.unit_type)
  • 在这两个字段(min,max,sum,avg,....)上使用聚合函数