+
, -
, *
, /
사용 가능
예)
SELECT food_preparation_time
, delivery_time,
, food_preparation_time + delivery_time as total_time
FROM food_orders
예)
SELECT SUM(food_preparation_time) AS total_food_preparation_time
, AVG(delivery_time) AS avg_food_preparation_time
FROM food_orders
COUNT(컬럼명)
-> 컬럼명 대신 1 혹은 * 사용 가능
몇 개의 값을 가지고 있는지 구할 때 :
COUNT(DISTINCT 컬럼명)
예)
SELECT COUNT(1) AS count_of_orders
, COUNT(DISTINCT customer_id) AS count_of_customers
FROM food_orders
예)
SELECT MIN(price) AS min_price
, MAX(price) AS max_price
FROM food_orders
종류별로 값을 구하기 위해 where 절을 사용해서 수십개의 쿼리를 작성하는 것은 비효율적이므로, Group by를 사용해서 여러번의 쿼리 없이 카테고리를 지정하여 연산한다.
SELECT 카테고리컬럼(컬럼)
, SUM(계산 컬럼)
FROM
GROUP BY 카테고리컬럼(컬럼)
예) 음식 종류별 주문 금액 합계
SELECT cuisine_type
, SUM(price) AS sum_of_price
FROM food_orders
GROUP BY cuisine_type
SELECT 카테고리컬럼(컬럼)
, SUM(계산 컬럼)
FROM
GROUP BY 카테고리컬럼(컬럼)
ORDER BY 정렬을 원하는 컬럼 (카테고리컬럼(컬럼), SUM(계산 컬럼) 둘 다 가능)
종류 구문 예시
오름차순 생략 ORDER BY SUM(price)
내림차순 DESC ORDER BY SUM(price) DESC
예) 오름차순 정렬
SELECT cuisine_type
, SUM(price) AS sum_of_price
FROM food_orders
GROUP BY cuisine_type
ORDER BY SUM(price)
예2) 내림차순 정렬
SELECT restaurant_name
, MAX(price) "최대 주문금액"
FROM food_orders
GROUP BY restaurant_name
ORDER BY MAX(price) DESC
SELECT
FROM
WHERE
GROUP BY
ORDER BY
오늘의 TMI
- SQL에 대해서 구글링을 좀 하다보니까 사람들이 컴마 위치를 앞으로 빼서 쓰는 경우를 발견했다. 찾아보니까 정해진 표준같은 것은 없고, 각자 나름대로 쓰는 것 같다. 아직 까지는 내가 뭘 써야 할지 모르겠지만, 정하고 나면 하나의 방법으로 쭉 밀고 갈 생각이기는 하다.
보니까 효율성의 문제랑 미관(?)의 문제로 많이들 이게 낫다 저게 낫다 얘기하던데, 나는 leading comma도 딱히 이상해 보이지는 않는다. 오히려 보기에는 좀 더 편한 느낌?(적어도 지금까지는 그렇다.)
이에 관한 글:
Leading with commas — ugly or efficient? An investigation over 320 GB of SQL code
https://hoffa.medium.com/winning-arguments-with-data-leading-with-commas-in-sql-672b3b81eac9
A Dispassionate Examination of the Empirical Evidence Regarding Positional Punctuation in SQL
https://mode.com/blog/should-sql-queries-use-trailing-or-leading-commas
- 컴마의 연장선으로 보니까 세미콜론 얘기도 있었다. 나는 지금까지 세미콜론을 안 쓰고는 했다. 이것도 찾아보니 단일 쿼리문일 때는 안 붙여도 된다고 했다. 근데 나중에 여러 쿼리문 수행할 때는 ;을 써서 구분을 해줘야 한다고 했다. 그럼 그냥 단일 쿼리문이어도 세미콜론 붙이는 습관을 들이는게 낫다 싶었다. 썼다 안 썻다 하는 것 보다는 C언어 할 때처럼 그냥 냅다 세미콜론 갈기는게 나을 것 같다.