본문 바로가기
공부/SQL

3.24 SQL 추가 공부

by 앙팡공기팡 2023. 3. 24.

 

 

1. Max를 조건값으로 쓸 땐 where에 서브쿼리를 이용하자

 

- GROUP BY에서 묶은 그룹에서 최댓값을 가진 row를 구할 때  HAVING column = MAX(column)은 안됨

 

-대신 WHERE name = (SELECT name FROM table GROUP BY column1 HAVING column = MAX(column))은 작동

 

- 이때 서브쿼리 자체로만 쿼리를 돌릴 경우 오류가 뜨지만 서브쿼리로 적용했을땐 잘 search한다 . 이유는 모름

 

2. 대여기간의 경우 DATEDIFF 함수에 +1을 하자

 

startdate 당일도 기간으로 치는 경우에는  DATEDIFF 함수에 1을 추가하도록 하자.

 

3. LIKE의 경우엔 WHERE 절에만 쓰는게 아닌 IF 절도 가능하다

 

-  IF( Column LIKE  '_foo%'  , 'bar1', ''bar2 ) 가능

 

4. GROUP BY는 두개의 컬럼을 묶기가 가능하다.

 

- 두번 째 실수다. 

 

5. 서브 쿼리 썻을때 본쿼리에도 적용이 되는 조건이 있는지 확인하자 (이중 조건)

 

-보통 조건을 걸 경우엔 서브 쿼리 뿐 아니라 본 쿼리에도 WHERE로 조건을 걸어줘야하는 경우가 많다.

 

6. WITH 절 사용

 

-  EX:

with cars as (

    select car_id

    from car_rental_company_rental_history

    where date_format(start_date, '%Y-%m') between '2022-08' and '2022-10'

    group by car_id

    having count(history_id) >= 5

)

 

-서브쿼리 형식으로 변수에 저장한다.

 

-사용 할때는  select car_id from cars 이런 식으로 테이블을 가져오듯이 사용.

 

7. Book as ‘a’ 했을 시 인식 불가

 

- a로 별명 지정하고 a.column_name 으로 호출할 경우 안불러와짐 그러나 Book as a로는 불러와진다

'공부 > SQL' 카테고리의 다른 글

SQL 추가 공부  (0) 2023.04.07
3-30 SQL 추가 공부  (0) 2023.03.30
3-21. SQL 추가 지식 공부  (1) 2023.03.21
4. DATE 관련 구문 & round  (0) 2023.03.20
3. JOIN과 REGEXP(정규 표현식)  (0) 2023.03.17