집계가 포함 된 식으로 필터링하려면 HAVING
절을 사용해야합니다.
MySQL을 사용하는 경우 사용자는 할 수없는 다른 RDBMS에 대해 해당 절의 별칭을 사용할 수 있습니다.
SELECT a.prim_id,
min(b.new_len * 36) as min_new_len,
max(b.new_len * 36) as max_new_len
FROM tb_first a
JOIN tb_second b
ON a.sec_id = b.sec_id /*<-- Use explicit JOIN syntax...*/
GROUP BY a.prim_id
HAVING min(b.new_len * 36) > 1900
AND max(b.new_len * 36) < 75000
ORDER BY avg(b.new_len * 36);
많은 RDBMS에 당신은 또한 인라인 뷰에 쿼리를 넣을 수 있습니다 대신 수식을 반복하는 열 별칭을 사용하는 것과 선택합니다. 이 경우 아래와 같이 WHERE
을 사용하십시오.
SELECT prim_id,
min_new_len,
max_new_len
from (SELECT a.prim_id,
min(b.new_len * 36) as min_new_len,
max(b.new_len * 36) as max_new_len,
avg(b.new_len * 36) as avg_new_len
FROM tb_first a
JOIN tb_second b
ON a.sec_id = b.sec_id
GROUP BY a.prim_id) derived
WHERE min_new_len > 1900
AND max_new_len < 75000
ORDER BY avg_new_len;
어떤 RDBMS를 사용하고 있습니까? HAVING 절에서 별칭을 사용할 수 있는지 여부는 다양합니다. –