SQL
-
UNIONSQL 2026. 2. 25. 17:50
JOIN과 UNION의 차이점을 알고 가야한다.굉장히 쉽다.JOIN은 수평결합. 새로운 칼럼으로 결합된다.UNION은 수직결합. 새로운 테이블 하나가 붙는 것이다. 그냥 두 쿼리의 결과를 합쳐서 보여주는 것이다 UNION DISTINCT = 합친 후 중복 제거UNION ALL = 그냥 합침 (중복제거 X) UNION = UNION DISTINCT그냥 UNION을 하게 되면 자동으로 DISTINCT가 붙어 중복제거를 해준다! 각 쿼리문은 MySQL 쿼리 실행 순서에 따라 구문들을 실행하고맨 마지막에 UNION으로 결과가 합쳐지게 된다. 정상적으로 합치기 위해서 당연히 각 쿼리의 칼럼 갯수는 동일해야한다칼럼명은 동일하지 않아도 돌아간다고 한다.맨 첫번째 쿼리를 기준으로 UNION 결과 테이블의 칼럼명이 정..
-
RANKINGSQL 2025. 1. 15. 14:14
특정 기준을 가지고 행의 순위를 매겨야할때 사용한다. RANK - Competition RankingDENSE_RANK - Dense RankingPARTITION BY - Ranking Grouping SELECT에서 RANKING한 결과를WHERE 절이나 HAVING 절에서 사용하지 못한다! PARTITION BY는 OVER 구문 내부에서 사용되는 것으로그룹별로 랭킹을 따로 해야할때 사용한다. 위 세 개가 자주 사용된다. [Competition Ranking] 동점자가 있으면 같은 순위를 부여하고,그 인원 수만큼 다음 순위를 건너뛰는 방식. 해당 컬럼의 값이 동일값이면 같은 순위로 배정한다. 그 후 다음 순위의 값은 그 전 같은 순위의 갯수만큼 건너뛰고 시작한다. SELECTName,RANK() OV..
-
SET 사용자변수SQL 2025. 1. 15. 12:18
https://school.programmers.co.kr/learn/courses/30/lessons/59413 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krSET @HOUR = -1;SELECT @HOUR := @HOUR + 1 AS HOUR, (SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @HOUR) AS COUNTFROM ANIMAL_OUTSWHERE @HOUR
-
3중 JOINSQL 2025. 1. 7. 13:08
https://school.programmers.co.kr/learn/courses/30/lessons/132204 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr SELECT a.APNT_NO, p.PT_NAME, p.PT_NO, a.MCDP_CD, d.DR_NAME, a.APNT_YMDFROM APPOINTMENT AS aJOIN DOCTOR AS dON a.MDDR_ID = d.DR_IDJOIN PATIENT AS pON a.PT_NO = p.PT_NOWHERE DATE(a.APNT_YMD) = '2022-04-13'AND a.MCDP_CD = 'CS'AND a.APNT_CNCL_YN = 'N'OR..
-
EXISTSSQL 2025. 1. 7. 12:55
존재성 유무에 사용되는 쿼리 습관들여놓으면 WHERE IN 절 또는 JOIN + DISTINCT 조합 대신 사용할 수 있다.꽤 쏠쏠하게 사용하는 재미가 있다. 1. 필터링이 목적이므로 WHERE 절이 무조건 있어야한다. 따라서 EXISTS (SELECT 1 FROM Table WHERE ~) 식으로 짜여진다.2. WHERE 절에서 밖의 테이블과 EXISTS 문 안 테이블 간의 상관관계를 매핑시켜줘야한다. [EXISTS (SELECT 1 FROM WHERE... )] 아래와 같은 형식으로 사용한다.EXISTS ( SELECT 1 FROM WHERE... ) 형태로 서브쿼리를 감싸서 넣으면 된다.WHERE EXISTS ( SELECT 1 FROM ~ WHERE ~) EXISTS는 존재성 유무..
-
MATH FUNCTIONSSQL 2024. 11. 4. 17:27
[사칙연산]SELECT 100 + 50;SELECT 200 - 30;SELECT 50 * 3;SELECT 10 / 3; // 나누기 3.3333SELECT 10 DIV 3; // 몫 3SELECT 10 % 3; // 나머지 1 [ROUND : 반올림] 이거 두 번째 인자 ㅈㄴ 중요함. 일단 ㅈㄴ 헷갈림SELECT ROUND(11.54619, 1) -- 11.5SELECT ROUND(11.54619, 2) -- 11.55SELECT ROUND(11.54619, 3) -- 11.5461SELECT ROUND(11.54619, 4) -- 11.5462 두번째 인자 한 칸 뒤에서 반올림해서두번째 인자 칸까지만 나타내겠다는거임 [TRUNCATE : 버릴 자릿수 아래로 버림]SELECT TRUNCATE(1234.5..
-
조건표현식SQL 2024. 10. 21. 20:45
조건표현식에는 두가지 종류가 있다. 이분기 처리에 사용되는 IF 문여러 조건 분기 처리에 사용되는 CASE 문 [IF 조건표현식]IF(score >= 60, 'PASS', 'FAIL') AS STATUSIFNULL(col, 0) AS SCORE 단순 이분기인 경우에는 IF 조건 표현식을 사용한다.[CASE WHEN 조건표현식] 여러 조건 분기인 경우, SWITCH CASE 느낌이 나는 경우에는IF 조건표현식이 아닌 CASE 조건표현식을 사용하는 것이 훨씬 효과적이다. CASE - WHEN - END ASCASE WHEN 조건1 THEN 조건1 충족할 때 반환되는 값 WHEN 조건2 THEN 조건2 충족할 때 반환되는 값 WHEN 조건3 THEN 조건3 충족할 때 반환되는 값 ELSE..