목록SQL/MySQL (19)
데이터로그😎
쿼리문 작성 시 '순위'를 매겨야 할 때가 있다. 예를 들면, A라는 class 내에서 수학성적 1등이 누구인지? 혹은 내가 운영하는 책방에서 판매량이 1위인 책이 무엇인지? 등을 알아보고 싶을 때. 이 때, 당연히 MAX()를 사용해도 된다. "SELECT MAX(sales) FROM book_sales ORDER BY sales DESC LIMIT 1;" 이렇게. 그러나 만약 section 별로 순위를 알고 싶다면? 예를 들어, 책 판매량을 "장르 별" 로 알고싶다면??? 나는 자기계발 분야, 소설 분야, 경제 분야 등 이렇게 장르 별로 판매량이 알고 싶은데... 이 땐 전체 전체 sales 중에서 max를 사용해도 장르 별 판매량 1위는 알 수가 없다. 이 때 사용하는 것이 바로 윈도우 함수인 RA..
GROUP BY ~ WITH ROLLUP group by 시 옆에 with rollup을 붙이게 되면 group by를 한 섹션 별로 소계가 생기게 된다. 만약 group by에 한 컬럼만 썼다면? 총계가 나옵니다. SELECT CountryCode, Sum(population) FROM world.city GROUP BY CountryCode WITH ROLLUP; 그러나, 여기서 궁금한 점! 만약 값 자체가 NULL인 것들과 GROUP BY ~ WITH ROLLUP으로 인해 총계 옆에 NULL이라고 나오는 것들을 어떻게 구분하지?? 이를 위해 GROUPING 함수가 나왔다고 한다. GROUPING GROUPING 함수는 그 인자를 그루핑 기준에서 고려하지 않은 부분 , 즉 총계나 소계인 경우에는 1을..
Replace(컬럼명, 대체 하고싶은 문자, 대체할 문자) 문자 혹은 숫자를 다른 문자로 대체하고 싶을 때 사용 문자, 숫자 모두 가능 예시: IndepYear라는 컬럼에서 19라는 숫자를 ** 으로 대체해주세요. SUBSTR(컬럼명, a, b) 문자열에서 "a번째 자리" 부터 b개의 문자를 추출하고 싶을 때 REPLACE + SUBSTR a번째 자리에서부터 b개의 글자를 특정 문자로 치환하고 싶을 때 LPAD, RPAD 원하는 글자 수 만큼 특정 문자로 자릿수를 채우고 싶을 때 LPAD(문자열, 원하는 총 문자 길이, 채울 문자 길이) TRIM, LTRIM, RTRIM 공백 제거위해 사용 공백을 눈으로 확인하기 위해 _(언더바)로 replace했다. LTRIM을 사용했을 때 좌측 공백이 사라진 것을 볼..
*MySQL 환경입니다. Null과 공백의 차이 어느날 address라는 테이블을 찾아보았더니 아래와 같은 공백이 보이는 것! 그래서 IS NULL을 사용해서 공백값만 뽑아보려 했으나.. 아무 것도 나오지 않음. 위의 공백 데이터는 말그대로 공백('')으로 처리된 것이지 아예 값이 안 들어간 것이 아니었음. 여기서 궁금증... 그럼... 데이터가 굉장히 많을 때 어떻게 공백을 포함한 null값을 찾을 수 있느냐?? 아래와 같이 찾으면 된다. 아래 두개 쿼리 모두 동일한 결과를 보여준다. NULLIF(postal_code, ' ')는 "postal_code가 ''(공백)이면 NULL값을 return해주세요" 라는 뜻이다. 즉 WHERE NULLIF(postal_code, '') IS NULL 은 아래와 같..
아래 문제를 통해 OVER() 함수에 대해 알아보자. 2023년 4월 기준 전국 주요 시/도의 연령대별 인구수 합계를 구하고, 연령대별 인구 비율 구하기 ✅step1 :2023년 4월 기준 전국 주요 시/도의 연령대별 인구수 합계를 구하기 SELECT AGRDE_SE_CD, sum(POPLTN_CNT) pop_cnt FROM tb_popltn WHERE ADMINIST_ZONE_NO LIKE '__00000000' AND POPLTN_SE_CD = 'T' AND STD_MT = '202304' GROUP BY AGRDE_SE_CD ORDER BY AGRDE_SE_CD; ✅step2: step1의 테이블을 from 절에 subquery로 놓고 sum() over()를 사용해 집계. ** sum(pop_cn..
아래 문제에서 사용하는 데이터: world database https://dev.mysql.com/doc/index-other.html MySQL :: Other MySQL Documentation Other MySQL Documentation This page provides additional documentation. There's even more available on these extra pages: MySQL Server Doxygen Documentation Title HTML Online MySQL Server (latest version) View Expert Guides Language Title Version HTML Onlin dev.mysql.com 전체 나라 수, 전체 도시 수..
참고: https://mjn5027.tistory.com/43#google_vignette [ Database ] ER 다이어그램 / ERD 기호 및 표기법 데이터베이스를 다루는 과정에서 한 번쯤은 들어봤을 ERD. 이번 게시글에서는 ERD에 대해 다뤄보자. ERD ' Entity Relationship Diagram ' 흔히 E-R 다이어그램이라고 불리우며 ERD 라고 mjn5027.tistory.com ①하나의 부서는 ②여러 명의 ③사원을 ④포함 ⑤할 수 있다. ①한 명의 사원은②하나의 ③부서에 ④소속된다 ⑤반드시. 더 공부가 필요하다.!!!!!!!!!