코딩연습이 좋아서/SQL이 좋아서

특정 물고기를 잡은 총 수 구하기
SELECT COUNT(*) AS FISH_COUNTFROM FISH_INFO A JOIN FISH_NAME_INFO BON A.FISH_TYPE = B.FISH_TYPEWHERE B.FISH_NAME = 'BASS' OR B.FISH_NAME = 'SNAPPER';

조건에 맞는 개발자 찾기
SELECT ID, EMAIL,FIRST_NAME,LAST_NAMEFROM DEVELOPERS WHERE SKILL_CODE & (SELECT CODE FROM SKILLCODES WHERE NAME = 'Python') OR SKILL_CODE & (SELECT CODE FROM SKILLCODES WHERE NAME = 'C#')ORDER BY ID;

업그레이드 된 아이템 구하기
SELECT A.ITEM_ID,A.ITEM_NAME,A.RARITYFROM ITEM_INFO A JOIN ITEM_TREE BON A.ITEM_ID = B.ITEM_IDWHERE B.PARENT_ITEM_ID IN(SELECT ITEM_ID FROM ITEM_INFO WHERE RARITY = 'RARE')ORDER BY A.ITEM_ID DESC;

재구매가 일어난 상품과 회원 리스트 구하기
SELECT USER_ID,PRODUCT_IDFROM ONLINE_SALE GROUP BY USER_ID, PRODUCT_IDHAVING COUNT(PRODUCT_ID) >= 2ORDER BY USER_ID, PRODUCT_ID DESC;- GROUP BY에 USER_ID와 PRODUCT_ID를 한다.

월별 잡은 물고기 수 구하기
SELECT COUNT(*) AS FISH_COUNT,MONTH(TIME) AS MONTHFROM FISH_INFO GROUP BY MONTHORDER BY MONTH;- GROUP BY 사용 시 데이터가 있는 것들만 그룹별로 적용한다.

물고기 종류 별 잡은 수 구하기
SELECT COUNT(*) AS FISH_COUNT,B.FISH_NAMEFROM FISH_INFO A JOIN FISH_NAME_INFO B ON A.FISH_TYPE = B.FISH_TYPEGROUP BY B.FISH_NAMEORDER BY FISH_COUNT DESC;

노선별 평균 역 사이 거리 조회하기
SELECT ROUTE, CONCAT(ROUND(SUM(D_BETWEEN_DIST), 1), 'km') AS TOTAL_DISTANCE,CONCAT(ROUND(AVG(D_BETWEEN_DIST), 2), 'km') AS AVERAGE_DISTANCEFROM SUBWAY_DISTANCE GROUP BY ROUTEORDER BY SUM(D_BETWEEN_DIST) DESC;- CONCAT을 썼기 때문에 내림차순 정렬할 때 CONCAT을 쓴 상태를 가져다 정렬하면 안된다.

조건에 맞는 사원 정보 조회하기
SELECT SUM(A.SCORE) AS SCORE,B.EMP_NO,B.EMP_NAME,B.POSITION,B.EMAILFROM HR_GRADE AJOIN HR_EMPLOYEES B ON A.EMP_NO = B.EMP_NOJOIN HR_DEPARTMENT C ON B.DEPT_ID = C.DEPT_IDGROUP BY A.EMP_NOORDER BY SCORE DESC LIMIT 1;

입양 시각 구하기(1)
SELECT HOUR(DATETIME) AS HOUR,COUNT(*) AS COUNTFROM ANIMAL_OUTS GROUP BY HOURHAVING HOUR >= 9 AND HOUR

가격대 별 상품 개수 구하기
SELECT CASE WHEN PRICE 1. ROUND()- ROUND(값, 자릿수) - '자릿수'까지 나타나도록 반올림을 진행합니다.자릿수를 정의하지 않으면, 소수점 첫 번째 위치에서 반올림을 합니다.SELECT ROUND( 1.678, 2) 출력 결과 : 1.68SELECT ROUND( 1.678 ) 출력 결과 : 2 2. CEIL()- CEIL(값)- 소수점 값의 상관없이 올림을 진행합니다.SELECT CEIL( 1.123 ) 출력 결과 : 2SELECT CEIL( 1.678 ) 출력 결과 : 2 3. FLOOR()- FLOOR(값)- 소수점 값의 상관없이 내림을 진행합니다.SELECT FLOOR( 1.123 ) 출력 결과 : 1SELECT FLOOR( 1.678 ) 출력 ..