좋아, 하나의 테이블이있는 데이터베이스에 테이블 A를 호출했다고 가정 해보십시오. 표 A Have Id int, sum int. 나는 합계 값의 평균보다 큰 테이블 A의 합계 값을 원한다. 이를 위해 이상한 (알 수 없음) MySql 동작
나는 두 쿼리 만든 :SELECT
a.id
FROM
TableA a,
(SELECT AVG(sum) AS mes FROM TableA) b
WHERE
a.sum>b.mes;
SELECT
a.id
FROM
TableA a
WHERE
a.sum > (SELECT AVG(a.sum))
GROUP BY
a.id;
이러한 쿼리가 동일 내가 볼때,하지만 결과는 초 제 널 (null)에 대한 확인이다.
제 질문은 간단합니다. 두 번째 쿼리에 논리 오류가 있습니까? 그렇다면 이유를 설명 할 수 있습니까?
그래서 두 번째 쿼리에서 테이블의 결과 집합을 다른 테이블과 비교하고 결과 집합과 비교하지 않는다는 의미입니다. – HasS
답이 업데이트되었습니다. 두 번째 쿼리에서 –
을 사용하여 그룹을 검사하여 a.id를 사용하여 그룹화 한 다음 각 그룹의 평균을 취하여 평균값이 해당 값과 같아 지도록하십시오. –