-
SQL - 2일차 연산자 / 범주 / 정렬SQL 정리/사전캠프 2024. 3. 19. 14:14
데이터간의 합산(열 기준)
select column1 , column2 , column1 + column2 as column3 from table
1, 2 가 표시되고 이 둘의 합산이 3번째 열에 나오게 된다.
SUM / AVG
select avg(column1) column1A sum(column2) column2A from table
COUNT
select count(1) column1, count(distinct column2) count_of_column3 from table
열 내의 데이터 갯수를 세는 작업
1=* 로 전체의 갯수(칸수)
distinct, 별개의 갯수(데이터 구별)
MIN/MAX
select min(column) min_C , max(column) max_C from table
이러한 함수들은 대*소문자 구별하지 않는다.
group by/ select by 는 select, from, where 을 사용 하고 난 뒤 온다!!
Group by - 범주화
select column1, sum(column2) sum_of_column2 from table group by column1
C1 을 기준으로 C2의 합계를 계산
단, group by 을 사용하지 않으면 1개의 데이터에 합산되고
따로 범주를 나눈다면 데이터값에 따라 합산된다.
*참고
select 을 통해 표시되는 목록을,
group by를 통해 분류기준을 명령할 수 있다.
select substr(column1, 1, 2) column2, ~~ .... group by substr(column1, 1, 2) column2 group by 1, 2
위 두가지 group by 방식은 내용 상 동일하다
Order by - 정렬
select column1 , sum (column2) sum_of_column2 from table group by column1 order by sum(column2) column3
C2의 합으로 정렬 후 C3 기준 오름차순 정렬, 이에 따른 C1 을 표시하라.
(내림차순 : desc)
의문점
' ' // " " // , 사용방식
1일차 글에 답변 달음.
select 이후 조건에 따라 산출 된 값이 이름을 정의하지 않으면 오류 발생
ex) SELECT cuisine_type, max(price) max_of_price, min(price) min_of_price
group by order by 간의 위치 배열도 상관이 있는가?
실행이 불가능하여 불가능 하다는 사실은 알고 있으나 이에 대한 이유는 자세히 알지 못한다.
ㄴ 24.04.03. GPT / / 검증필요
일반적인 경우가 아닌, window함수를 이용하였을 떄 혹은
subquery사용에 의해 변경 될 수 있음을 시사하고 있다.
- GROUP BY 절은 데이터를 그룹화하고 집계를 수행하기 때문에 데이터를 그룹화한 후에 정렬을 수행합니다. 따라서 GROUP BY 절은 ORDER BY 절보다 먼저 나와야 합니다.
- ORDER BY 절은 결과 집합의 정렬을 지정하며, 결과 집합이 생성된 후에 실행됩니다. 따라서 ORDER BY 절은 GROUP BY 절 뒤에 위치할 수 있습니다
'SQL 정리 > 사전캠프' 카테고리의 다른 글
5일차 - null값, coalesce, pivot, 시간형식 (2) 2024.03.22 SQL - 4일차 (0) 2024.03.20 SQL 3-2일차 / 조건확장, 데이터 타입 (0) 2024.03.20 SQL - 3일차 (0) 2024.03.19 SQL - 1일차 기초문/필터링 (0) 2024.03.19