Nested SELECT를 사용하지 않고 MySQL에서 개수를 기준으로 데이터를 필터링하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-05 18:45:02
원래의
805명이 탐색했습니다.

How to Filter Data Based on Count in MySQL Without Using Nested SELECT?

MySQL - WHERE 절에서 COUNT(*) 사용

사용자가 WHERE 절에서 COUNT(*) 함수를 사용하여 MySQL에서 데이터를 필터링하려고 시도하는 동안 문제가 발생했습니다. 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
로그인 후 복사

이 쿼리는 다음 단계를 수행합니다.

  1. gd 열을 기준으로 gd 테이블의 행을 그룹화합니다.
  2. COUNT(*) 함수를 사용하여 각 gid 그룹의 행 수를 계산합니다.
  3. HAVING 절을 사용하여 결과를 필터링하고 개수가 10보다 큰 그룹만 반환합니다.
  4. 마지막 업데이트된 열을 기준으로 최종 결과를 내림차순으로 정렬합니다.

GROUP BY 및 HAVING 절을 사용하면 중첩된 SELECT 문을 사용하지 않고도 원하는 결과를 효과적으로 얻을 수 있어 성능과 효율성이 향상됩니다.

위 내용은 Nested SELECT를 사용하지 않고 MySQL에서 개수를 기준으로 데이터를 필터링하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!