그룹 수가 4보다 큰 경우에만 내 DB에서지도 항목 목록을 반환하려고합니다. 그렇지 않으면 원하지 않습니다. 그룹화 할 항목.COUNT (*)> X 일 경우 그룹화, 그렇지 않으면 그룹화하지 않음
내 프로젝트는 설정된 영역 내의 모든 항목을 반환하도록 작성되었으며 그룹화를 사용하여 해당 영역을 그리드로 분할합니다. 그리드의 각 셀에 너무 많은 결과가있는 경우 단일 항목 표식 대신 그룹 수와 함께 그룹 표식을 표시합니다.
나의 현재 쿼리는 COUNT (*) 내가 뭘하고 싶은 것은 유일한 그룹이
SELECT *, COUNT(*) as groupCount, floor(longitude/0.0007) AS groupLong, floor(latitude/0.0007) AS groupLat
FROM items
WHERE longitude>=151.1
AND longitude<=151.2
AND latitude>=-33.9
AND latitude<=-33.8
GROUP BY floor(longitude/0.0007), floor(latitude/0.0007)
인에 의해 항목이 그룹화되어 있는지 확인하기 위해 노력하고있는 항목의 경우 그룹의 그룹 수> 4 항목 < = 4는 그룹화되지 않은 항목으로 반환됩니다.
나는 HAVING COUNT(*)>4
을 사용하여 5 이상의 그룹 만 반환 할 수 있다는 것을 알고 있지만 4 세 이하의 그룹에 속한 그룹 해제되지 않은 항목을 반환하려면 어떻게해야합니까?
결과를 얻기 위해 두 가지 쿼리를 수행하게되어 기쁩니다. 그렇다면 그것을 수행하는 방법이 있다면 그것은 좋을 것입니다!
데이터베이스 엔진을 전환 할 수있는 옵션이있는 경우이 기능은 창 기능에 유용합니다. MySQL은 그들을 지원하지 않지만 PostgreSQL은 지원합니다. –