일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 항해99장점
- jvm
- social login
- 부트캠프추천
- jwt
- 인스턴스화
- 항해99단점
- Thread
- Instance
- 클래스
- 항해99솔직후기
- 쓰레드
- class
- 소셜로그인
- object
- bean
- DI
- 오브젝트
- 객체지향 프로그래밍
- 객체
- 소셜
- 회고록
- Dependency Injection
- 스레드
- 프로세스
- IoC
- 인스턴스
- API
- inversion of control
- process
- Today
- Total
목록내배캠_데이터분석가_'24.04~08/SQL (15)
로운's 기술노트
가장 많이 작성한 경우는 3번으로 총 3명이 조회됨 그렇다면 아래 쿼리가 맞아야 하는데, 또 틀렸단다 ㅡㅡ 다른 풀이를 찾아보니 order by와 limit을 달아서 단순히 최상위 1명만 추출하던데, 프로그래머스에 리뷰 수가 같을 경우 별도 조건이 붙어 있지 않다. 이후 여러가지 테스트를 해보니 최다 리뷰어 3명 중 어느 사람이 들어가도 정답으로 인정된다?!! 정답 SELECT MEMBER_NAME , REVIEW_TEXT , DATE_FORMAT(REVIEW_DATE, '%Y-%m-%d') AS "REVIEW_DATE" FROM REST_REVIEW r INNER JOIN MEMBER_PROFILE m ON r.MEMBER_ID = m.MEMBER_ID WHERE r.MEMBER_ID = ( SELEC..
like 검색을 한 번에 여러 개 해주는 연산자가 있다고 한다!! 바로 regexp인데, 신기해서 바로 사용해 보았다. 사용방법은 아래와 같다. where 컬럼명 regexp 정규식 ㅇ 정규식 . : 문자 하나 * : 앞 글자의 *개수 숫자 이상 반복 ^ : 첫 값 $ : 끝값 [.] : 괄호 안의 문자열 일치 확인 {.} : 반복 | : or ※ 이 외에도 더 많은 정규표현식이 있으니 필요할 시, 검색! 그러나 결국 'regexp'를 써서 틀렸다. 다른 풀이와 대조하여 따로 테스트했을 때, 결과는 같은데 뭐가 다를까?! # start_date regexp ('2022-08%'|'2022-09%'|'2022-10%') as 'regexp' # START_DATE BETWEEN '2022-08-01' AN..
# 3개의 테이블을 조인하고 매출액에 sum을 넣는 것 잊지말자 SELECT a.AUTHOR_ID, AUTHOR_NAME, CATEGORY, sum(SALES*PRICE) as TOTAL_SALES from AUTHOR a left join BOOK b on a.AUTHOR_ID=b.AUTHOR_ID left join BOOK_SALES c on b.BOOK_ID=c.BOOK_ID where sales_date like '2022-01-%' group by a.AUTHOR_ID, CATEGORY order by a.AUTHOR_ID, CATEGORY desc
# 조인 키를 SHIPMENT_ID가 아니라 FLAVOR로 맞추는게 필요함. # JULY 테이블에 strawberry가 2개의 출하번호로 존재하기 때문. # 그 외엔 무난하다. SELECT b.FLAVOR from FIRST_HALF a right join JULY b on a.FLAVOR=b.FLAVOR group by a.FLAVOR order by a.TOTAL_ORDER+sum(b.TOTAL_ORDER) desc limit 3
# ㅇ 진행순서 # 1. (서브쿼리)조회수가 가장 높은 게시물 BOARD_ID 추출 # 2. (메인쿼리)1번의 게시물에 대한 파일경로 추출(concat) # 3. FILE_ID 기준 내림차순 정렬 # error : This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' # ㄴ 서브쿼리에서 limit절은 IN/ALL/ANY/SOME 등과 혼용이 불가능하다! select concat('/home/grep/src/', a.BOARD_ID, '/', b.FILE_ID, b.FILE_NAME, b.FILE_EXT) from USED_GOODS_BOARD a left join USED_GOODS_FILE b on a.BOARD_ID=..
유와 요거트가 담긴 장바구니 SELECT CART_ID from CART_PRODUCTS where NAME in ('Milk') and CART_ID in ( select distinct CART_ID from CART_PRODUCTS where NAME in ('Yogurt') ) order by CART_ID # 같은 장바구니에 우유와 요거트만 있으면 되는 간단한 문제. 어렵게 생각하지 말고 서브쿼리를 좀 더 활용하자!
■ 용어 정리 ㅇ SQL : Structured Query Language로 구조적인 질의언어를 의미한다. 쉽게 말해 데이터베이스를 관리하기 위한 언어의 일종이다. ㅇ Query : 문의, 의문 등을 의미하는 것처럼 SQL에서도 해당 언어를 이용하여 데이터베이스에 요청하는 질의를 칭한다. ■ 필수 명령어 ㅇ SELECT : 데이터를 가져올 '컬럼'을 지정. 데이터를 조회하는 모든 Query에 사용 ㅇ FROM : 데이터를 참조할 '테이블' 지정 ※ * : 모든 컬럼을 가져온다는 의미 ■ 기본 명령어 ㅇ as : select한 컬럼에 별칭을 지정 (특수문자나 한글이 포함된 경우는 "큰 따옴표" 안에 기재) e.g. select A as B > A라는 컬럼명을 B라는 별칭으로 조회 = select A B >..