사용자가 MySQL에서 COUNT(*) 함수를 사용하여 데이터를 필터링하려고 시도하는 동안 문제가 발생했습니다. WHERE 절. 중첩된 SELECT 문을 사용하지 않고도 이 작업을 수행할 수 있는 효율적인 방법을 모색했습니다. 이는 상당한 리소스를 소비할 수 있기 때문입니다.
사용자는 원하는 결과를 설명하기 위해 다음 의사 코드를 제시했습니다.
SELECT DISTINCT gid FROM `gd` WHERE COUNT(*) > 10 ORDER BY lastupdated DESC
이 접근 방식의 문제점은 MySQL이 WHERE 절에서 COUNT(*)와 같은 집계 함수를 지원하지 않는다는 것입니다. 이 제한을 피하기 위해 사용자는 중첩된 SELECT를 사용하여 각 고유 gid에 대한 행 수를 계산한 다음 그에 따라 결과를 필터링하는 가능성을 탐색했습니다. 그러나 이 방법은 비효율적이고 리소스 집약적인 것으로 간주되었습니다.
다행히도 MySQL은 GROUP BY 및 HAVING 절을 사용하여 보다 최적화된 솔루션을 제공합니다.
SELECT gid FROM `gd` GROUP BY gid HAVING COUNT(*) > 10 ORDER BY lastupdated DESC
이 쿼리는 다음 단계를 수행합니다.
GROUP BY 및 HAVING 절을 활용하는 이 접근 방식은 중첩된 SELECT 문을 사용하지 않고도 원하는 결과를 효과적으로 달성하여 성능과 효율성이 향상됩니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3