본문 바로가기

mySQL 쿼리문 coalece / date_format / order by, having 본문

개발/algorithm

mySQL 쿼리문 coalece / date_format / order by, having

자전하는명왕성 2023. 5. 16. 00:30

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은 그룹 단위로 조건을 필터링하고 조건을 적용하는 역할을 한다.

Comments