2024-01-25 AI 코딩 TIL

2024. 2. 16. 20:23· 코딩 교육 TIL

sql 조건문

● if문 작성

if문으로 조건을 주어준다

if문의 조건과 다른 것에는 else문을 이용하여 결과 값을 변경이 가능하

​


● case 문

case문을 이용하여 여러 조건별로 따로 정리가 가능하며

case when + 조건1 + then + 조건1에 맞는 경우 나오게 될 결과물

when + 조건2 + then + 조건2에 맞는 경우 나오게 될 결과물

when + 조건3 + then + 조건3에 맞는 경우 나오게 될 결과물

end(끝에는 이것을 넣어주어야 한다)

​

문자를 숫자로 숫자를 문자로 변경해주는 명령

​

문자 명령 예시

​

subselect : 변수 선언? 함수? 같은 느낌으로 내가 지정한 값을 불러올 수 있게 만들어주는 것

​

distinct : 개수를 셀 때 종류가 몇 가지가 있는지 세는 명령어

​

괄호 안에서 설정을 하고 밖에 select에서 계산을 한 뒤 결과 값


● 테이블끼리 붙이는 명령어

​

from 칸에 서로 원하는 테이블을 합치는 명령어

left와 inner가 있다

​

left : 기존의 값에 넣어주는 테이블값을 넣되 값이 없는 곳은 비워둔다

​

inner : 기존의 갚에 넣어주는 테이블 값이 동일하게 존재하는 값만 만들어준

FROM food_orders f inner join customers c on f.customer_id = c.customer_id

​

FROM food_orders 옆에 f같이 약어 설정이 가능하다

​

f.customer_id = c.customer_id : 서로 동일한 컬럼이 있어야 하면 같은 값들을 이어서 한 테이블로 표시를 해준다


● 소수점 없애는 법

​


● group by, order by, where

이 상태에서도 group by, order by, where 전부 다 가능하다


☆☆distinct를 사용하면 똑같은 중복의 값을 삭제해준다☆☆


​

두 개의 테이블 값을 가져와서 연산하는 것도 가능하다

​

숙제 어렵다...


필러링 평균값 구하기

앞에서 계산을 할 때 Not given 같이 숫자가 아닌 건 0으로 간주하기 때문에 평균값이 바뀐다

​

☆☆☆where 값 is not null : 없는 값 제외☆☆☆

​

null 값 변경

​

coalesce(b.age, 20)

null 값일 때 기본 값 설정같이 null 값을 20으로 바꾸어준다.

​

​

select restaurant_name, //여기부분이 중요하다 max를 넣어 줘야 재대로 된 값이 출력이 된다. 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

● 피벗 뷰 만들기

​

SELECT age, MAX( if(gender = 'male', cnt_order, 0)) "male", MAX( if(gender = 'female', cnt_order, 0)) "female" (여기가 나누는 기준) FROM ( SELECT gender , case when age between 10 and 19 then 10 when age between 20 and 29 then 20 when age between 30 and 39 then 30 when age between 40 and 49 then 40 when age between 50 and 59 then 50 end age, (여기가 나누는 기준) COUNT(1) cnt_order FROM food_orders f inner join customers c on f.customer_id = c.customer_id where age BETWEEN 10 and 59 group by 1,2 (여기가 나누고 싶은 기준은 정하는 곳) ) a GROUP by 1 ORDER By 1 DESC

한번 한 번을 밖에서 서브쿼리에 해주어야 한다

select cuisine_type, restaurant_name, order_count, rn "순위" from ( select cuisine_type, restaurant_name, rank() over (partition by cuisine_type order by order_count desc) rn, order_count from ( select cuisine_type, restaurant_name, count(1) order_count from food_orders group by 1, 2 ) a ) b where rn<=3 order by 1, 4 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 where date_format(date(date), '%m')='03' group by 1, 2 order by 1

띄우기를 두 번 하면 서로 다른 실행 테이블을 가질 수 있다.

숙제의 답

​

'코딩 교육 TIL' 카테고리의 다른 글

2024-01-29 AI 코딩 TIL  (0) 2024.02.16
2024-01-26 AI 코딩 TIL  (0) 2024.02.16
2024-01-24 AI 코딩 TIL  (0) 2024.02.16
2024-01-23 AI 코딩 TIL  (0) 2024.02.16
2024-01-22 AI 코딩 TIL  (0) 2024.02.16
'코딩 교육 TIL' 카테고리의 다른 글
  • 2024-01-29 AI 코딩 TIL
  • 2024-01-26 AI 코딩 TIL
  • 2024-01-24 AI 코딩 TIL
  • 2024-01-23 AI 코딩 TIL
HyunjunPark
HyunjunPark
하루하루 배워가는 코딩에 대하여 내가 배우는 것 들을 정리하여 보자
HyunjunPark
박현준의 코딩 교육
HyunjunPark
전체
오늘
어제
  • 분류 전체보기 (154)
    • 코딩 정리함 (18)
    • 코딩 교육 WIL (9)
    • 코딩 교육 TIL (98)
    • 프로젝트 과제 (10)
    • QA교육 (11)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 스파르탄 AI 코딩 교육일지 작성 블로그입니다.

인기 글

태그

  • 취업부트캠프
  • 스파르타코딩
  • 내일배움캠프후기
  • 내일배움캠프
  • 코딩
  • 부트캠프솔직후기
  • SQL 명령문
  • 국비지원부트캠프
  • mysql

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
HyunjunPark
2024-01-25 AI 코딩 TIL
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.