일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- stickiness
- n2t
- 롤링리텐션
- 파이프(|)
- 리텐션
- 클래식리텐션
- openssh
- rolling retention
- DAU
- 범위리텐션
- 티스토리
- GIT
- 노션
- MAU
- 패키지 관리자
- github
- range retention
- Wau
- 하이퍼바이저
- N2TWinform
- RTO
- RPO
- 정처기필기
- classic retention
- pem
- dpkg
- 데이터리안
- passphrase
- 다중 암호화 키
- ssh-keygen
- Today
- Total
TobeSteady
[GROUP BY] Unknown column 'MAX_PRICE' in 'IN/ALL/ANY subquery' 본문
[GROUP BY] Unknown column 'MAX_PRICE' in 'IN/ALL/ANY subquery'
NKUT 2023. 3. 15. 15:50프로그래머스 : 식품분류별 가장 비싼 식품의 정보 조회하기
문제
FOOD_PRODUCT 테이블에서
식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요.
이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고
결과는 식품 가격을 기준으로 내림차순 정렬해주세요.
오답
SELECT CATEGORY, PRICE MAX_PRICE, PRODUCT_NAME
FROM FOOD_PRODUCT
WHERE (CATEGORY, MAX_PRICE) IN (
SELECT CATEGORY, MAX(PRICE) AS MAX_PRICE
FROM FOOD_PRODUCT
WHERE CATEGORY IN ('과자', '국', '김치', '식용유')
GROUP BY CATEGORY
)
SQL 실행 중 오류가 발생하였습니다.
Unknown column 'MAX_PRICE' in 'IN/ALL/ANY subquery'
How do I use alias in where clause?
Possible Duplicate: Referring to a Column Alias in a WHERE Clause SELECT Trade.TradeId, Isnull(Securities.SecurityType,'Other') SecurityType, TableName, CASE WHEN SecurityTrade.SecurityId I...
stackoverflow.com
MySQL :: MySQL 8.0 Reference Manual :: B.3.4.4 Problems with Column Aliases
B.3.4.4 Problems with Column Aliases An alias can be used in a query select list to give a column a different name. You can use the alias in GROUP BY, ORDER BY, or HAVING clauses to refer to the column: SELECT SQRT(a*b) AS root FROM tbl_name GROUP BY root
dev.mysql.com
Standard SQL disallows references to column aliases in a WHERE clause.
> 표준 SQL은 WHERE절에서 열 별칭에 대한 참조를 허용하지 않는다.
This restriction is imposed because
when the WHERE clause is evaluated, the column value may not yet have been determined.
> 이 제한은 WHERE절이 평가될 때 열 값이 아직 결정되지 않을 수 있기 때문에 적용된다.
SQL 구문 순서 : FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY
MySQL
SELECT CATEGORY, PRICE MAX_PRICE, PRODUCT_NAME
FROM FOOD_PRODUCT
WHERE (CATEGORY, PRICE) IN (
SELECT CATEGORY, MAX(PRICE) AS MAX_PRICE
FROM FOOD_PRODUCT
WHERE CATEGORY IN ('과자', '국', '김치', '식용유')
GROUP BY CATEGORY
)
ORDER BY MAX_PRICE DESC
'Languages > SQL' 카테고리의 다른 글
[DATA] Pivot (0) | 2023.12.14 |
---|---|
[SUBQUERY&JOIN] 01. 서브쿼리를 조인으로 대체 할 수 있는 경우 (0) | 2023.03.10 |
[GROUP BY] Sub Query, JOIN | 02.차이 (0) | 2023.03.10 |
[GROUP BY] Sub Query, JOIN | 01.응용 (0) | 2023.03.10 |
[SELECT] AVG, ROUND (0) | 2023.03.03 |