mySQL 쿼리문 coalece / date_format / order by, having 본문
반응형
coalece / date_format / order by, having
오늘은 프로그래머스 MySQL SQL문 문제를 풀며 알게 된 내용들에 대해 다룬다.
먼저, 문제는 다음과 같다.
coalece
다음 문제에서는 이름이 Null 값인 동물의 이름을 "No name"으로 치환하여 보여주는 것을 원한다.
SELECT ANIMAL_TYPE, coalesce(NAME,'No name') as NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
이때, coalesce 라는 함수는 처음 사용해보았는데, coalesce는 null이 아닌 첫번째 유효한 표현식을 반환하는 함수이며
이 함수 덕분에 name컬럼 내에 존재하는 Null 값을 "No name"으로 치환하여 값을 구할 수 있다.
date_format
SELECT animal_id, name, date_format(datetime, "%Y-%m-%d") as 날짜
from animal_ins
date_format(datetime, "%Y-%m-%d") // 2015-07-28
date_format(datetime, "%y-%M-%D") // 15-July-28th
얼핏 자바스크립트 공부를 하다가 본 것만 같은 함수 이름인 date_format.
그말마따나 해당 칼럼에 있는 date 타입의 데이터를 사용자가 원하는 타입으로 변환시켜 보여준다.
대소문자를 어떻게 사용하느냐에 따라 산출되는 값이 다르다는 특징이 있다.
order by / having
SELECT NAME, count(NAME)
from ANIMAL_INS
where NAME is not null
having count(NAME) > 1
order by NAME
group by 는 중복된 값을 가진 행을 중복 데이터를 제거하여 고유 값인 하나의 그룹으로 묶는 역할을 하며
having은 그룹 단위로 조건을 필터링하고 조건을 적용하는 역할을 한다.
반응형
'개발 > algorithm' 카테고리의 다른 글
new Array와 Array.from의 차이점 (0) | 2023.06.02 |
---|---|
프로그래머스 - Lv.2 타겟넘버 / 깊이 우선 탐색(DFS)와 너비 우선 탐색(BFS) 구현 방식 비교 (0) | 2023.06.01 |
프로그래머스 - 200문제 풀이 기념 (0) | 2023.03.12 |
프로그래머스 - Lv.2 N개의 최소공배수 (0) | 2023.02.26 |
프로그래머스 - Lv.1 문자열과 영단어 / 정규표현식 간단한 활용 (대체) (0) | 2023.02.09 |
Comments