Search

SELECT

고득점 키트

1.인기있는 아이스크림

order by : 정렬
SELECT FLAVOR FROM FIRST_HALF ORDER BY TOTAL_ORDER DESC, SHIPMENT_ID;
SQL
복사

2. 재구매가 일어난 상품과 회원 리스트 구하기

group by , having
SELECT USER_ID ,PRODUCT_ID FROM ONLINE_SALE GROUP BY USER_ID, PRODUCT_ID HAVING COUNT(*) >= 2 ORDER BY USER_ID, PRODUCT_ID DESC;
SQL
복사
예시 결과표를 보면서 정렬해줘야 되는 부분 세세하게 신경써서 코드 짜기

3. 오프라인/온라인 판매 데이터 통합하기

SELECT DATE_FORMAT(SALES_DATE,'%Y-%m-%d') AS SALES_DATE ,PRODUCT_ID ,IFNULL(USER_ID,NULL) AS USER_ID ,SALES_AMOUNT FROM( SELECT SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT FROM ONLINE_SALE UNION SELECT SALES_DATE, PRODUCT_ID, NULL, SALES_AMOUNT FROM OFFLINE_SALE ) A WHERE DATE_FORMAT(SALES_DATE,'%Y-%m') = '2022-03' ORDER BY SALES_DATE, PRODUCT_ID, USER_ID;
SQL
복사

4. 흉부외과 또는 일반외과 의사 목록 출력하기

date_format : 날짜 포맷 변경하기
SELECT DR_NAME ,DR_ID ,MCDP_CD ,DATE_FORMAT(HIRE_YMD,'%Y-%m-%d') AS HIRE_YMD FROM DOCTOR WHERE MCDP_CD IN ('CS','GS') ORDER BY HIRE_YMD DESC, DR_NAME;
SQL
복사

5. 3월에 태어난 여성 회원 목록 출력하기

SELECT MEMBER_ID ,MEMBER_NAME ,GENDER ,DATE_FORMAT(DATE_OF_BIRTH,'%Y-%m-%d') AS DATE_OF_BIRTH FROM MEMBER_PROFILE WHERE (DATE_FORMAT(DATE_OF_BIRTH,'%m') = 3 AND GENDER = 'W' AND TLNO IS NOT NULL) ORDER BY MEMBER_ID;
SQL
복사

6. 12세 이하인 여자 환자 목록 출력하기

IFNULL( 특정필드값, 대체할 값 ) : 특정필드의 값이 NULL이면 대체할 값으로 대체
SELECT PT_NAME ,PT_NO ,GEND_CD ,AGE ,IFNULL(TLNO,'NONE') AS TLNO FROM PATIENT WHERE AGE <= 12 AND GEND_CD = 'W' ORDER BY AGE DESC, PT_NAME;
SQL
복사

7. 서울에 위치한 식당 목록 출력하기

SELECT i.REST_ID ,i.REST_NAME , i.FOOD_TYPE , i.FAVORITES , i.ADDRESS , round(avg(r.REVIEW_SCORE), 2) as SCORE from REST_INFO i INNER JOIN REST_REVIEW r ON i.rest_id = r.rest_id WHERE i.address like '서울%' group by i.REST_ID, i.REST_NAME, i.FOOD_TYPE, i.FAVORITES, i.ADDRESS order by SCORE desc, i.FAVORITES desc;
SQL
복사

8. 강원도에 위치한 생산공장 목록 출력하기

SELECT FACTORY_ID ,FACTORY_NAME ,ADDRESS FROM FOOD_FACTORY WHERE ADDRESS LIKE '강원도%' ORDER BY FACTORY_ID;
SQL
복사

9. 과일로 만든 아이스크림 고르기

SELECT F.FLAVOR FROM FIRST_HALF F INNER JOIN ICECREAM_INFO I ON F.FLAVOR = I.FLAVOR WHERE F.TOTAL_ORDER > 3000 AND I.INGREDIENT_TYPE = 'fruit_based' ORDER BY F.TOTAL_ORDER DESC;
SQL
복사

10. 모든 레코드 조회하기

SELECT ANIMAL_ID ,ANIMAL_TYPE ,DATETIME ,INTAKE_CONDITION ,NAME ,SEX_UPON_INTAKE FROM ANIMAL_INS ORDER BY ANIMAL_ID;
SQL
복사

11. 역순 정렬하기

SELECT NAME ,DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC;
SQL
복사

12. 아픈 동물 찾기

SELECT ANIMAL_ID ,NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION = 'Sick' ORDER BY ANIMAL_ID;
SQL
복사

13. 어린 동물 찾기

SELECT ANIMAL_ID ,NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION <> 'Aged' ORDER BY ANIMAL_ID;
SQL
복사

14. 여러 기준으로 정렬하기

SELECT ANIMAL_ID ,NAME ,DATETIME FROM ANIMAL_INS ORDER BY NAME, DATETIME DESC;
SQL
복사

15. 상위 N개 레코드

SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1;
SQL
복사

16. 조건에 맞는 회원수 구하기

SELECT COUNT(DISTINCT USER_ID) AS USERS FROM USER_INFO WHERE DATE_FORMAT(JOINED,'%Y') = '2021' AND AGE BETWEEN 20 AND 29;
SQL
복사

17. 조건에 맞는 도서 리스트 출력하기

SELECT BOOK_ID ,DATE_FORMAT(PUBLISHED_DATE,'%Y-%m-%d') FROM BOOK WHERE YEAR(PUBLISHED_DATE) = '2021' AND CATEGORY = '인문' ORDER BY PUBLISHED_DATE;
SQL
복사