Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- statement
- javascript
- MongoDB
- query
- sql
- postgres
- DBFilter
- insert_into
- Join
- PreparedStatement
- insertOne
- DB
- SubqueryFilter
- DATABASE
- MySQL
- cursor()
- 몽고디비
- 데이터베이스
- sqlite3
- 밴쿠버응급실
- 파이썬
- python데이터베이스연동
- subquery
- python
- onetoone
- 서브쿼리
- Collections
- PostgreSQL
- PostgresDB
- 자바스크립트
Archives
- Today
- Total
새벽코딩
[PostgresDB-2] 21. 서브쿼리와 IN, ALL, ANY (실습) 본문
Programming/Postgres DB
[PostgresDB-2] 21. 서브쿼리와 IN, ALL, ANY (실습)
midnightcoder 2022. 12. 29. 15:45참고 : https://cloudstudying.kr/lectures/516
19 필터링과 서브쿼리(IN, ALL, ANY) | CloudStudying
# 필터링과 서브쿼리(IN, ALL, ANY) ## 미션 --- 다음 카페 DB를 가지고, 서브쿼리 관련 필터링 문제를 푸시오. #### 카페 DB 구조도 
https://midnightcoding.tistory.com/64
[PostgresDB-2] 10. Relationship (별다방 카페 실습)
참고 : https://cloudstudying.kr/lectures/509 테이블생성 및 데이터 DB 쿼리 CREATE TABLE orders( id SERIAL PRIMARY KEY, --PK status VARCHAR(50), created_at TIMESTAMPTZ ); CREATE TABLE beverages( id SERIAL PRIMARY KEY, name VARCHAR(50), price INT
midnightcoding.tistory.com
카페 DB 구조도
카페 DB 데이터
1. 판매량 상위 3개 음료를 다음과 같이 조회하려 한다. 주어진 두 쿼리를 조합하여 이를 구하시오.
-- 먼저 판매량 상위 3개 음료
SELECT
beverage_id AS "ID",
SUM(count) AS "판매량"
FROM
order_details
GROUP BY
beverage_id
ORDER BY
"판매량" DESC
LIMIT
3
;
SELECT
beverages.id AS "ID",
beverages.name AS "음료명"
FROM
beverages
WHERE
id IN (
-- 판매량 상위 3개 음료
SELECT
beverage_id
FROM
order_details
GROUP BY
beverage_id
ORDER BY
SUM(count) DESC
LIMIT
3
)
;
2. 아메리카노와 라떼보다 가격이 싼 음료는 다음과 같다. 주어진 쿼리를 조합하여 이를 조회하시오.
--먼저 아메리카노와 라떼의 가격
SELECT
name AS "음료명",
price AS "가격"
FROM
beverages
WHERE
name IN ('아메리카노', '라떼')
;
SELECT
name AS "음료명",
price AS "가격"
FROM
beverages
WHERE
price < ALL(
-- 아메리카노와 라떼의 가격
SELECT
price AS "가격"
FROM
beverages
WHERE
name IN ('아메리카노', '라떼')
)
;
3. 커피가 아닌 음료들 중, 적어도 한 커피 보다 가격이 비싼 것은 다음과 같다. 주어진 두 쿼리를 조합하여 이를 조회하시오.
-- 모든 커피의 가격
SELECT
price
FROM
beverages
WHERE
btype = 'COFFEE'
;
SELECT
name AS "음료명",
price AS "가격"
FROM
beverages
WHERE
btype != 'COFFEE'
AND
price > ANY(
-- 모든 커피의 가격 중 하나라도 크다면
SELECT
price
FROM
beverages
WHERE
btype = 'COFFEE'
)
;
출처 : 홍팍의 'SQL 데이터 분석, 활용!'
'Programming > Postgres DB' 카테고리의 다른 글
[PostgresDB-2] 20. 서브쿼리와 IN, ALL, ANY (SUBQUERY) (0) | 2022.12.29 |
---|---|
[PostgresDB-2] 19. 서브쿼리실습 (SUBQUERY) (0) | 2022.12.29 |
[PostgresDB-2] 18. 서브쿼리란?(Subquery) (0) | 2022.12.29 |
[PostgresDB-2] 17. 그룹필터링 (HAVING, ORDER BY, LIMIT) (0) | 2022.12.29 |
[PostgresDB-2] 16. 그룹화와 집계(with 마켓컬리 데이터) -GROUP BY (0) | 2022.12.28 |