반응형
haveing 절'에 알 수 없는 열이 있습니다.
사킬라 데이터베이스에서 영화 최장 대여 기간을 찾아야 합니다.시도해 본 적이 있습니다.
SELECT DISTINCT
customer.first_name
FROM
rental,
customer
WHERE
rental.customer_id = customer.customer_id
GROUP BY
rental.rental_id
HAVING
(
rental.return_date - rental.rental_date
) =(
SELECT
MAX(countRental)
FROM
(
SELECT
(
rental.return_date - rental.rental_date
) AS countRental
FROM
rental,
customer
GROUP BY
rental.rental_id
) AS t1
)
하지만 오류가 발생합니다.
# 1054 - Unknown column 'rental.return_date' in 'having clause'
왜 그런지 아는 사람?집계된 데이터로 추정되는 열을 사용했습니다.제가 무엇을 빠뜨리고 있나요?
문서에 기재된 바와 같이
SQL 표준에서는 HAVING이 GROUP BY 절의 열만 참조하거나 Aggregate 함수에 사용되는 열만 참조해야 합니다.그러나 MySQL은 이 동작에 대한 확장을 지원하며 SELECT 목록의 열과 외부 하위 쿼리의 열을 참조해야 하는 것도 허용합니다.
return_date 및 rental_date를 선택 절에 지정해야 합니다.
두 가지 옵션이 있습니다.
SELECT DISTINCT
customer.first_name,
rental.return_date,
rental.rental_date
FROM
rental,
customer
WHERE
rental.customer_id = customer.customer_id
GROUP BY
rental.rental_id
HAVING
(
rental.return_date - rental.rental_date
) =(
...
아니면
SELECT DISTINCT
customer.first_name,
(rental.return_date - rental.rental_date) as rental_duration
FROM
rental,
customer
WHERE
rental.customer_id = customer.customer_id
GROUP BY
rental.rental_id
HAVING
rental_duration =(
...
둘 다 잘 될 겁니다.
언급URL : https://stackoverflow.com/questions/36105812/unknown-column-in-having-clause
반응형
'programing' 카테고리의 다른 글
WordPress : 기존 (생성된) HTML 페이지 통합 (0) | 2023.10.04 |
---|---|
단추에서 테두리 제거 (0) | 2023.10.04 |
초기화되지 않은 정수는 항상 c에서 0으로 기본 설정됩니까? (0) | 2023.10.04 |
TypeError: 일관된 MRO(Method Resolution Order)를 만들 수 없습니다. (0) | 2023.10.04 |
"ORA-04068: 패키지의 기존 상태가 폐기되었습니다 ORA-04065: 실행되지 않거나, 변경되거나, 저장 프로시저가 삭제되었습니다 (0) | 2023.10.04 |