코딩/SQL

[KDC]SQL 기초 - 5주차

yoney 2024. 12. 26. 11:57

 


  • 데이터를 조회했는데 값이 없을 때:
    • where '컬럼명 is not null': null값 제외해서 조회하기
    • coalesce(age, 대체값) : null 값을 다른 값으로 대체하기(null이 아닌데 대체할 경우엔 if 문 사용)

 

 

  • pivot table: 데이터를 표 형식으로 배열해서 보여줌

예시:

select restaurant_name,
       max(if(hh='15', cnt_order, 0)) "15",
       max(if(hh='16', cnt_order, 0)) "16",
       max(if(hh='17', cnt_order, 0)) "17",
       max(if(hh='18', cnt_order, 0)) "18",
       max(if(hh='19', cnt_order, 0)) "19",
       max(if(hh='20', cnt_order, 0)) "20"
from 
(
select a.restaurant_name,
       substring(b.time, 1, 2) hh,
       count(1) cnt_order
from food_orders a inner join payments b on a.order_id=b.order_id
where substring(b.time, 1, 2) between 15 and 20
group by 1, 2
) a
group by 1
order by 7 desc

 

 

 

  • date_type의 구조: 년(Y), 월(m), 일(d), 요일(w)

예시:

select date_format(date(date), '%Y') y,
       date_format(date(date), '%m') m,
       count(1) order_count
from food_orders a inner join payments b on a.order_id=b.order_id
group by 1, 2