Group By

column ์ด๋‚˜ ํ‘œํ˜„์‹์˜ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ raw ์ง‘ํ•ฉ์„ ๊ทธ๋ฃนํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ

๊ตฌ๋ฌธ

SELECT
    column, column2 ... function(column) [ex. COUNT]
FROM
    member
WHERE
    column_condtion
GROUP BY column

์‹คํ–‰ ์ˆœ์„œ

FROM -> ON -> JOIN -> WHERE -> GROUP BY-> HAVING -> SELECT -> DISTINCT -> ORDER BY -> LIMIT

์˜ˆ

SELECT
    YEAR(orderDate) AS year,
    SUM(quantityOrdered * priceEach) AS total
FROM
    orders
INNER JOIN orderdetails
    USING (orderNumber)
WHERE
    status = 'Shipped'
GROUP BY
    YEAR(orderDate);

orderNumber์ด ์™ธ๋ž˜ํ‚ค์ธ orderdetailsํ…Œ์ด๋ธ”๊ณผ inner join์„ ํ•œ ํ›„, status๊ฐ€ Shipped ์ธ raw ๋“ค์„ ๋…„๋„๋กœ groupํ•œ raw์ง‘ํ•ฉ๋“ค์„ year๊ณผ, total์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ถœ๋ ฅ

๋ณ„์นญ

ํ‘œ์ค€ SQL์—์„œ๋Š” group by์ ˆ์— ๋ณ„์นญ์„ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์—†์ง€๋งŒ MySQL์€ ์ง€์›ํ•œ๋‹ค.

SELECT
    YEAR(orderDate) AS year,
    COUNT(orderNumber)
FROM
    orders
GROUP BY
    year;

์ •๋ ฌ

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ‘œ์ค€ SQL์—์„œ๋Š” ์ง€์›ํ•˜์ง€ ์•Š์ง€๋งŒ order by๊ฐ€ ์•„๋‹Œ group by์—์„œ๋„ ์ •๋ ฌ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

SELECT
    status,
    COUNT(*)
FROM
    orders
GROUP BY
    status DESC;

Last updated