Mysql ㅈㄴ 자신있어..
하다가 이번 코테에서 특수 메소드를 (max, min 어떻게 썼더라..?) 까먹고... 이후 울면서 야근하다 (떠나간)개발자의 코드를 보고 정리하게 됨
고인이 되신(?) 온기만 남아있는 옛 개발자분의
elasticQuery에서 꽤 새로운 문법을 보았는데 mysql 기반이라 이해가 어렵진 않았따.
이번 시험에서 공부를 많이 안하고 가서 아쉬움
concat = 없는 데이터를 붙인다. data내 없는 요소를 넣어주는 개념
select user_id, concat('string',customer_id, file_path) as 더할특성 , ...
concat_ws = split처럼 쪼개주고 데이터 재정렬해준다
selec user_id, concat(' ', city,address1,address2, room) as 주소
combine
case~ when : 여전히 case when 은 쓰면 깔끔해지는 코드임
mysql 에서 쓰임 (if 가 없고, where 을 쓰는것 보다 직관적)
select user_id, user_pw, prd_id from customer as c join product as b on b.prd_id = c.prd_id case when status = 'none' then '없음'
IIF
%es
DECLARE @SCORE INT =80
SELECT IIF(@score >= 70, '합', '불') AS SCORE)
비교 ) case when
%es
DECLARE @SCORE INT = 80
SELECT CASE WHEN @SCORE >= 70 THEN '합'
WHEN @SCORE <70 AND @SCORE >60 THEN '합격보류'
ELSE ' 불'
END AS PASS
innerquery
subquery 는 보면 볼수록 기묘하다.
잘쓰면 DBA가 될수도 있어!
max ,min, count
이번 코테에서 병합해야하는 sql문이 나왔는데
count(min(*))
형태바꿔서 where in 써가며 난리를 다 쳤는데 결국 제대로 풀지 못했다...
select max(mycnt) from (select count(*) as mycnt from Table1 group by programm_language) as result;
order by : 특징을 기준으로 매칭
group by : 그룹별 매칭 ( 중복 그룹을 묶음)
where
조건문.
조건문은 중첩할수 있다 (AND)
WHERE in :
select * from test_db a
where user in
(select user from test_db_copy b
where b.group = 'A');
user attribute을 뽑아온다.
SELECT name from animal_ins order by datetime asc limit 1;
having
SELECT
status, COUNT(*)
FROM
orders
GROUP BY status
HAVING COUNT(*) > 4;
having count(*)