【发布时间】:2020-06-11 01:01:18
【问题描述】:
我想查询 distinct 和 count:
SELECT DISTINCT way.vehicle, count(way.vehicle), way.id, way.created_at, way.updated_at, way.version
from waypoints as way
left join dtb_vehicle on way.vehicle = dtb_vehicle.vehicle
where (6373 * acos (cos ( radians(21.0277644)) * cos ( radians (way.latitude)) * cos (radians (way.longitude) - radians (105.8341598)) + sin (radians (21.0277644)) * sin (radians (way.latitude)))) < 20
AND dtb_vehicle.vehicle_type = 600
GROUP BY way.vehicle
HAVING count(way.vehicle) > 10
但它总是显示错误:列“way.id”必须出现在 GROUP BY 子句中或用于聚合函数中。
请帮助我。谢谢
【问题讨论】:
-
然后按照错误提示进行操作(如果
way.id是主键,那么你只需要按那个分组)。顺便说一句:distinct和group by几乎没有意义。由于group by,无论如何,每个vehicle只能得到一行
标签: postgresql group-by count distinct aggregate-functions