Postgres ошибка [столбец должен появляться в предложении GROUP BY или использоваться в статистической функции] - PullRequest
0 голосов
/ 27 февраля 2020

Я хочу запросить отчет и считать:

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 или использоваться в статистической функции.

Пожалуйста, помогите мне. Спасибо

1 Ответ

2 голосов
/ 27 февраля 2020

Это только первая из четырех ошибок, которые вы получите. Postre SQL перестает проверять ваш SQL, как только обнаруживает ошибку, поэтому это не означает, что есть только один. На самом деле у вас та же проблема со всеми id, create_at, updated_at и version. Как показывает ошибка, если вы используете GROUP BY, то все столбцы в операторе SELECT должны быть либо в предложении GROUP BY, либо в них должна использоваться какая-то агрегатная функция. Предполагая, что вы не хотите добавлять их в GROUP BY (на том основании, что в таком случае ничего, вероятно, не будет иметь COUNT> 10), вам придется либо удалить их из SELECT, либо применить какую-либо статистическую функцию. В вашем случае MAX может подойти, но, не зная больше, я не могу сказать точно.

...