푸잉이의 기술블로그
2주차) 엑셀보다 쉬운 SQL #Group by - having #Order by # Null #날짜 조건#MOD 본문
원래는 월요일마다 들을려고 했는데 급하게 자소서 제출 해야하는게 있어서 목요일 새벽 4시에 강의를 들었다...
오늘 9시에 출근해야하는데 어떡하남ㅎ.ㅎ
#Group by, Order by
순서
1) select * from table이름
을 해서 어떤 필드명을 가지는지를 확인
2) 원하는 필드명을 확인했으면 ex) orders table에 email을 보고자 한다면
select * from orders
where email like '%gmail.com'을 쳐서 gmail.com인 추출
3) payment 별로 개수를 세야한다면
select payment_method, count(*) from orders
where email like '%gmail.com'
group by payment_method를 선택한다.
-> group by 별로 payment_method를 묶고 개수를 세는 것
4) order by는 다 추출하고 난 뒤에 정렬하는 것이므로 제일 마지막에 작성한다.
default 값 asc
select payment_method, count(*) from orders
where email like '%gmail.com'
group by payment_method를 선택한다.
order by count(*)
->개수별로 정렬한다.
5) count 말고 max, min, avg 등이 있다.
그 위에 round(max(likes), 2) 로 round를 뒤집어 놓으면 소수점 2자리로 표시되어진다.
**max ^ (likes)로 max 띄우고 like로 표시 하면 error 뜨기 때문에 꼭 붙여서 사용하기
그리고, alias 별칭으로 필드 값, 테이블 명 모두 별칭으로 불릴 수 있다.
기본적으로 select * from user u <-u라고 뜬다.
필드명을 별칭으로 쓸 땐, select payment_method as pm from orders
as 넣어서 표시한다.
#Group by having
동일한 회원이 동일한 상품을 재구매한 데이터를 구하기
중복 관련 -> group by having
GROUP BY USER_ID, PRODUCT_ID HAVING COUNT(*)>=2
#필드값이 Null인 데이터 조회하기
select * from a
where fiber is null
#필드 값이 Null 이 아닌 데이터 조회하기
그럼 필드 값이 Null 이 아닌 경우에는 어떻게 할까요.
SELECT * FROM TargetTable
WHERE TargetField IS NOT NULL
IS NOT NULL 을 사용하면 됩니다. 너무 쉽죠?
#필드 값이 Null 대신하는 방법
1. SELECT 에서 CASE-END문 만들기
SELECT CASE WHEN NAME IS NULL THEN "NO NAME" ELSE NAME END AS NAME


#날짜 조건
조건문에 BETWEEN을 사용해 날짜 범위를 지정해 검색할 수 있습니다.
지정한 범위에 포함되는 데이터는 모두 출력됩니다.
꼭 날짜에 작은 따옴표 잊지 말기!!!
SELECT *
FROM test
WHERE date BETWEEN '2022-07-01 00:00:00' AND '2022-07-31 23:59:59';
결과
+------+---------------------+
| id | date |
+------+---------------------+
| 1 | 2022-07-26 14:00:00 |
| 2 | 2022-07-27 13:00:00 |
| 3 | 2022-07-28 14:00:00 |
| 4 | 2022-07-29 15:00:00 |
#MOD
Select * from table
where mod(ID, 2) = 0
-> 짝수행 검색
Select * from table
where mod(ID, 2) = 1
-> 홀수행 검색
'IT > SQL' 카테고리의 다른 글
| [프로그래머스] 없어진 기록 찾기 & JOIN 총 정리 (0) | 2022.11.15 |
|---|---|
| [프로그래머스] 즐겨찾기가 가장 많은 식당 정보 출력하기 (0) | 2022.11.14 |
| 4주차) 엑셀보다 쉬운 SQL #Subquery #Substring #Case (0) | 2022.08.08 |
| 3주차) 엑셀보다 쉬운 SQL #Join #Union (0) | 2022.07.12 |
| 1주차) 엑셀보다 쉬운 SQL #Select #Where #Limit #Distinct #Count#Format 변경 #날짜 데이터 일부 추출 (0) | 2022.06.27 |