알고리즘

[프로그래머스] SQL 고득점 키트

슈뢰딩거의 고등어 2022. 2. 4. 14:29

SQL 기입 순서

select >> from >> where >> group by >> having >> order by >> limit

 


중복제거

 select count(distinct name) from animal_ins where name != 'NULL';

case 사용법

select animal_type,
	case
    	when name is not null
        	then name
        else
        	'No name'
        end as name,
        sex_upon_intake 
    from animal_ins;

date_format()

select animal_id, name, date_format(datetime, '%Y-%m-%d') from animal_ins;

having

select name, count(name) from animal_ins
	group by name
    having count(name) >= 2
    order by name;

JOIN 을 사용할 때 주의할 점

1. 처음에 left join 을 사용했으면 모든 조인들은 left join 을 사용한다.

2. left join 은 조인 순서가 결과에 영향을 미친다. 따라서, 결과로 필요한 컬럼의 갯수가 많은 순서대로 조인을 해준다.