상세 컨텐츠

본문 제목

[오늘의 코드 103] [solvesql] 첫 주문과 마지막 주문

코드 공부

by eun_00 2024. 8. 22. 20:38

본문

 
 

https://solvesql.com/problems/high-season-of-restaurant/

[문제]

  • tips 테이블에는 식사 금액, 팁, 결제자 성별, 요일, 시간대 등 어느 레스토랑의 테이블 당 결제에 관련된 데이터가 들어있습니다. 요일별 매출액 합계를 구하고, 매출이 1500 달러 이상인 요일의 결제 내역을 모두 출력하는 쿼리를 작성해주세요. 쿼리 결과에는 tips 테이블에 있는 모든 컬럼이 포함되어야 합니다.

[💡 정답]

SELECT *
FROM tips
WHERE day IN( 
  SELECT day 
  FROM tips 
  GROUP BY day
  HAVING SUM(total_bill) > 1500
) ;
 

 ✔️ 알게된 것 

- 서브쿼리에서 요일별 그룹화하고, 1500 이상인 요일만 추출 

- 메인 쿼리에서 해당 요일에 대한 모든 정보를 필터링

sum(total_bill) 집계된 값을 메인쿼리에서 필터링 할 수 없어 서브쿼리를 사용한다.

관련글 더보기