나는 다음과 같은 쿼리 SO에 질문 중 하나를 대답하위 쿼리없이 두 번 그룹화 할 수 있습니까?
SELECT s.address
FROM shop s
JOIN visit v ON s.shopid = v.shopid
JOIN customer c ON v.customerid = c.customerid
WHERE c.cname = 'John'
GROUP BY
s.address
, c.customerid
HAVING COUNT(*) > 1
이 잘 작동하지만 쿼리의 기준을 충족 주어진 가게 2 요한의 이상이있는 경우 중복 된 주소를 반환합니다, 그래서 내 대답을 수정했습니다 :
SELECT DISTINCT a.address
FROM
(
SELECT s.address
FROM shop s
JOIN visit v ON s.shopid = v.shopid
JOIN customer c ON v.customerid = c.customerid
WHERE c.cname = 'John'
GROUP BY
s.address
, c.customerid
HAVING COUNT(*) > 1
) a
이제 제 질문은 : 집계 식을 평가할 때 그룹화를 수행하고 단일 쿼리에서 선택하기 전에 가능합니까?
아마도 사용하는 테이블에서 뚜렷한 고객을 데려 갈 수 있습니다. – Avi
많은 테이블의 고객은 가입 할 때 상점에서 복제가 발생합니다. 많은 John이 단일 상점에서 구매할 수 있기 때문입니다. – kyooryu
만약 u가 혼자서 주소를 가져 가야한다면 완전히 테이블 가게를 가져 가야합니다. (고객 ID, 가게 주소 등)를 시도해 볼 수 있습니다. – Avi