- 💡 합계
- select max(열) from 테이블;
- 열의 최댓값 출력
- 💡 중복
- select distinct 열 from 테이블;
- 열의 중복 제거
- 💡 그룹
- select 열1, 열2 from 테이블 join ... group by 열1, 열2;
- 그룹화할 때 (group by) select에 기재된 열을 모두 다 써야함
- 단, 집계함수 사용 열은 굳이 그룹화에 할 필요X
- 그룹화(+집계함수) 열 말고 다른 열도 출력하고 싶으면 where로 SELECT 2개 구문 연결
- select 다른 열, 열1, 열2 from 테이블 join ... where (열1, 열2) in (select ...)
- 💡 문자열 결합
- select concat (열1,문자) from 테이블
- 결과 :열1문자
로 문자가 결합되어 나옴
- 💡 연도 구하기
new!
- select year(날짜열) from 테이블
- 결과 : 연도만 문자형으로 나옴
- select date_format(날짜열, ' %Y')
- 결과 : 연도만 날짜형으로 나옴
⚠️ 이 문제에서 연도 = 문자열로 출력해야함에 주의 !!
(1) 연도별 가장 큰 대장균 사이즈 구하기
SELECT YEAR(DIFFERENTIATION_DATE) AS YEAR, MAX(SIZE_OF_COLONY) AS YEAR_MAX FROM ECOLI_DATA GROUP BY YEAR
(2) JOIN
SELECT O.연도, 최대-현 대장균 사이즈, O.ID FROM ECOLI_DATA AS O INNER JOIN ( 1번 구문 ) AS M ON O.연도 = M.연도
(3) YEAR_DEV(최대-현 대장균 사이즈) 계산
YEAR(O.DIFFERENTIATION_DATE) AS YEAR
M.YEAR_MAX-O.SIZE_OF_COLONY
ON YEAR(O.DIFFERENTIATION_DATE) = M.YEAR
SELECT YEAR(O.DIFFERENTIATION_DATE) AS YEAR, M.YEAR_MAX-O.SIZE_OF_COLONY AS YEAR_DEV, O.ID
FROM ECOLI_DATA AS O
INNER JOIN (
SELECT YEAR(DIFFERENTIATION_DATE) AS YEAR,
MAX(SIZE_OF_COLONY) AS YEAR_MAX
FROM ECOLI_DATA
GROUP BY YEAR
) AS M
ON YEAR(O.DIFFERENTIATION_DATE) = M.YEAR
ORDER BY YEAR, YEAR_DEV;