나도 공부한다/SQL6 MySQL - DATE_FORMAT과 날짜/시간함수의 차이 프로그래머스 연도 별 평균 미세먼지 농도 조회하기 문제 조건수원의 연도별 평균 미세먼지 오염도, 평균 초미세먼지 오염도를 구하면 되는 문제다.이 때 평균값은 소수 셋째자리에서 반올림하고 연도를 기분으로 오름차순 해야한다. 기존 코드DATE_FORMAT으로 연도를 뽑아내는 방식을 사용했고 테스트케이스 답은 올바르게 나왔는데 틀렸다고 뜬다.-- 코드를 작성해주세요-- 수원의 연도별 평균 미세먼지 오염도(PM10), 평균 초미세먼지 오염도(PM2.5)-- 소수 셋째자리에서 반올림, 연도 기준 오름차순SELECT DATE_FORMAT(YM, '%Y') AS YEAR, ROUND(AVG(PM_VAL1),2) 'PM10', ROUND(AVG(PM_VAL2), 2) 'PM2.5'FROM AIR_POLLUTIONWHE.. 2024. 10. 22. 프로그래머스 SQL - 비트연산 관련된 프로그래머스 문제특정 형질을 가지는 대장균 찾기이 문제에서 1번 형질은 이진수로 1, 3번 형질은 이진수로 100이다.따라서 두 형질 중 하나 이상을 갖고 있는지 파악하려면 100+1=101, 즉 5와 and 연산을 한 결과가 1 이상이면 된다.동시에 2번 형질(10)이 없어야하므로 &2 연산으로 두번째 비트가 1인 결과에 not을 한다. 나는 where 절에서 1 이상이라는 조건을 ' > 0' 으로 표시했는데, where절에서는 0이 아닌 비트는 모두 true이기 때문에 GENOTYPE & 5 이렇게만 써줘도 된다고 한다. 오늘도 하나 배워간다.출처SELECT COUNT(ID) AS COUNTFROM ECOLI_DATA AS EDWHERE GENOTYPE & 5 > 0 AND (NOT GENOT.. 2024. 6. 17. 프로그래머스 SQL - COALESCE COALESCE 함수NULL값을 다른 값으로 치환하는 함수를 말해보라고 하면 보통 NVL(Oracle), ISNULL(SQL Server), IFNULL(MySQL)을 떠올릴 것이다. 나도 오라클 문법으로 문제를 풀어서 NVL가 가장 먼저 떠올랐는데, 이렇게 DB 환경마다 문법이 다른 경우엔 같은 기능을 하면서 호환성이 더 좋은 함수를 알아둬야할 것 같았다. 그래서 알아본 게 COALESCE 함수이다. COALESCE VS NVLNVL은 두 개의 인자만 받고 COALESCE는 두 개 이상의 인자를 받는다. 인자 개수는 제한이 없다.NVL은 첫 번째 인자가 NULL일 경우, 두 번째 인자를 반환한다.COALESCE는 첫 번째로 만나는 NULL이 아닌 값을 반환한다. 이 때 평가 순서는 왼쪽에서 오른쪽이다.. 2024. 6. 13. 프로그래머스 SQL - ROWNUM, FETCH FETCHOracle 12c 버전에는 rownum보다 더 간편하게 사용할 수 있는 FETCH라는게 생겼다고 한다.limit와 비슷하게 결과에서 행 수를 제한할 수 있다.페이지네이션처럼 특정 범위를 출력해야할 때 유용하게 쓰인다. 기본 문법OFFSET절은 몇 번째 행부터 반환할 것인지를 지정하고, 필수는 아니다.FIRST와 NEXT 옵션은 같은 기능을 수행한다( 결과 중 처음 n개의 행만 반환 ).왜 같은 기능인데 이름을 다르게 만들었을까 궁금하여 검색해보니, 단어 의미의 차이인 것 같다.FIRST의 경우 첫 n개의 행을 반환한다는 의미가 크고 NEXT의 경우 특정 지점 이후 n개의 행을 반환한다는 의미가 크다. 따라서, FIRST는 OFFSET 없이 사용하는 게 더 자연스럽고 NEXT는 OFFSET과 함.. 2024. 6. 13. 프로그래머스 SQL - EXTRACT, GROUP BY Oracle 기준으로 풀었습니다. extract 함수날짜 유형의 데이터에서 특정 정보만 추출할 수 있는 함수. 예를 들어 DATE 형식인 컬럼 이름이 birth라고 하고 일자만 추출하고 싶다면 extract(day from birth) 라고 쓰면 된다.이 때 컬럼 타입은 DATE, TIMESTAMP, INTERVAL이어야한다.EXTRACT('추출하려는 날짜 요소' FROM 컬럼이름) group by절특정 칼럼을 기준으로 같은 값을 묶는 SQL 명령어이다.기준 칼럼은 여러개를 지정할 수 있으며, 명시된 칼럼 순서대로 그룹화된다.예를 들어 group by year, month 는 동일한 연도별로 그룹이 만들어지고, 연도별 그룹을 월별로 다시 그룹화한다.avg, count, min, max, sum과 같은 .. 2024. 6. 11. 프로그래머스 SQL - ROUND, TRUNC 프론트엔드 개발만 하다보니 SQL 문법을 자꾸 잊어버린다. 오늘부터 두 문제씩 풀어보려고 한다.Lv1도 풀거라서 블로그에 기록하기 민망하지만 공개적으로 글을 써야 더 꼼꼼하게 공부하게 된다.사실 문제 풀이보다는 모르는 개념 정리 위주일 것이다. 그동안은 바빠서 코테 직전에 벼락치기를 했었는데 하반기를 기다리며 확실히 공부해야겠다. 오라클에서의 소수점을 다루는 함수를 몇개 살펴보자. 1. ROUND(number, decimal_places)반올림 함수지정된 소수점 자리까지 표시한다. 예를 들어, 1을 쓰면 두번째 소수점에서 반올림해서 첫번째 자리수까지 표시되는 것이다.decimal_places을 생략하면 첫째자리에서 반올림한다.ROUND(123.4567, 2) 결과는 123.46ROUND(123.456.. 2024. 6. 10. 이전 1 다음