이 오류는 COUNT (DISTINCT) 곧 개선 될 것입니다. 지금은 하위 선택에서 GROUP BY와 함께 여러 COUNT (DISTINCT)를 사용하는 경우 외부 SELECT에서 COUNT (DISTINCT) 출력을 모두 사용하거나 사용하지 않아야합니다.
문제가있는 경우 COUNT (DISTINCT)를 GROUP BY 및 SUM()으로 바꾸는 것이 더 쉬울 수 있습니다. 예를 들어, 자신과 비슷한이 쿼리는 외부 필드 중 하나가 제거되면 실패합니다
SELECT Cnt_a, Cnt_b
FROM (SELECT COUNT(DISTINCT IF(a > 0, c, NULL)) AS Cnt_a,
COUNT(DISTINCT IF(b > 0, c, NULL)) AS Cnt_b
FROM (SELECT 0 AS a, 1 AS b, 2 AS c, 3 as d)
GROUP BY d);
하지만 별개의 분야로 그룹에 관계없이 실행됩니다 상응하는 쿼리
SELECT SUM(NonZero_a) AS Cnt_a, SUM(NonZero_b) AS Cnt_b
FROM (SELECT SUM(a) > 0 AS NonZero_a,
SUM(b) > 0 AS NonZero_b
FROM (SELECT 0 AS a, 1 AS b, 2 AS c, 3 as d)
GROUP BY c, d);
을 경우 누군가를 Google에서이 사실을 알게되면 내 직업 ID가 진짜입니다 : job_4CBlFODR8i4D7UAOzF1F1OPqP8I. – alan