Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 博士后群体问题_Sql_Postgresql - Fatal编程技术网

Sql 博士后群体问题

Sql 博士后群体问题,sql,postgresql,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 我已经为GROUPBY提供了一个专栏。错误说明了什

我不确定这为什么行不通:

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


我已经为GROUPBY提供了一个专栏。

错误说明了什么。u、 标记不在group by中,并且您不知道如何将不同的u.tag值聚合为单个值

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

  • 在GROUPBY子句中添加u.tag(以及u.unit\u类型)
  • 在这两个字段(最小值、最大值、总和、平均值等)上使用聚合函数

这不适用于所有RDBMS。错误消息告诉您所有您需要知道的!它不需要“专栏”。它告诉你你需要的确切的额外的一个。您还需要整理
u.unit\u类型
为什么?根据定义:如果有group By语句,则选择列表中的每个字段都必须在group By语句中命名,或者必须具有聚合函数。在这种情况下,u.id位于group by中,并且(p.id)具有聚合函数count()。u、 标记和u.unit_类型均不在其中。