본문 바로가기

mysql20

[MySQL/PGS] Lv.4 : 자동차 대여 기록 별 대여 금액 구하기 🥵 https://school.programmers.co.kr/learn/courses/30/lessons/151141 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 4, mysql테이블 3개를 조인해야 해서 신경쓸게 정말 많고, 복잡한 문제였다. 할인율 계산하는 서브쿼리에서일 수를 구하기 위해 datediff 함수를 사용해야 하고,할인율이 0일 경우를 고려해 ifnull 함수를,문자열에서 숫자만 추출하기 위해 replace, substring_index를이걸 또 숫자로 변환하기 위한 cast 함수를 써야 했다 ㅎ.ㅎ.... 사실 Duration_type이 3개로 고정되어 있어서, 이렇게까.. 2025. 5. 9.
[MySQL/PGS] Lv.3 : 오랜 기간 보호한 동물(2) https://school.programmers.co.kr/learn/courses/30/lessons/59411 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 3mysql join, order, limit 등을 사용해야 한다. 나의 풀이select o.ANIMAL_ID, o.NAMEfrom animal_ins i, animal_outs owhere i.animal_id = o.animal_idorder by (o.datetime-i.datetime) desclimit 2; 2025. 5. 9.
[MySQL/PGS] Lv.2 : 부모의 형질을 모두 가지는 대장균 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/301647 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 2.mysql, 비트 연산자 사용 문제 (&, |) 처음에 안 풀려서 풀이를 찾아봤는데,, 비트연산자를 쓰라는거임?근데 왜 쓰는건지 이해가 안돼서 고민하다가 결국 이해해버렸다 *ㅁ*! 그니까부모 bit 가 1이면 자식이 항상 1이어야 하고 (1&1 = 1)부모가 0이면, 자식은 1이든 0이든 상관없으니 (0&1 = 0, 0&0 = 0)부모 & 자식 연산 결과값 => 부모가 되면, 자식은 부모의 모든 1을 포함하는 것이다‼️ex.. 2025. 5. 7.
[MySQL/PGS] Lv.2 : 연도별 대장균 크기의 편차 구하기 🪟 https://school.programmers.co.kr/learn/courses/30/lessons/299310 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 2.처음에는 서브쿼리를 통해서 테이블 2개를 새로 생성하고, 조인을 통해 해결했다. 근데 너무 비효율적인 것 같아서 방법을 찾아보니 '윈도우 함수'라는 걸 사용하면 된다고 함.그래서 MAX() OVER(PARTITION BY ...) 를 활용하여 다시 풀어보았다!윈도우 함수를 사용하면 집계 함수를 행별로 계산하면서도 그룹화를 유지할 수 있다고 한다. 대장균 시리즈 풀면서 새로운 함수 많이 알아갑니다,, 나의 풀이 (1)sel.. 2025. 5. 7.
[MySQL/PGS] Lv.1 : 특정 형질을 가지는 대장균 찾기 프로그래머스 레벨 1 (이게 왜....)mysql이진수 변환을 활용해야 하는 문제. 나는 BIN 함수를 이용해서 풀이했다.BIN()은 반환값이 string이기 때문에, substr로 인덱스 접근하면 됨근데 이것보다 간단한 풀이가 많았다,,, 비트연산자 활용 풀이 (select-from 생략)WHERE GENOTYPE & 2 = 0 AND ( (GENOTYPE & 1) > 0 OR (GENOTYPE & 4) > 0 ); 나의 풀이select count(*) as COUNTfrom ecoli_datawhere substr(bin(GENOTYPE),length(bin(GENOTYPE))-1,1) = 0 and (substr(bin(GENOTYPE),length(bin(GENOTYPE)),1.. 2025. 5. 7.
[MySQL/PGS] Lv.3 : 대장균의 크기에 따라 분류하기 2 https://school.programmers.co.kr/learn/courses/30/lessons/301649 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr프로그래머스 레벨 3 mysql 비율(백분위)에 따라 등급을 나누는 쿼리는NTILE() 또는 PERCENT_RANK() 같은 함수로 구현이 가능하다.이번에 처음 알았는데..외워두자 🥹 등급 나누기 = case when then + ntile 응용!! 나의 풀이select ID, CASE NTILE(4) OVER (order by SIZE_OF_COLONY desc) when 1 then 'CRITICAL' when 2 then 'H.. 2025. 5. 7.
728x90
반응형