суббота, 18 ноября 2017 г.

MySQL. Урок 23. Группировка. GROUP BY. Операторы WITH ROLLUP, HAVING.

-- Группировки могут быть по одному или нескольким полям.
DROP TABLE IF EXISTS table_group;


CREATE TABLE IF NOT EXISTS table_group (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL DEFAULT '',
customer INT NOT NULL DEFAULT 0,
price DECIMAL(8,2) NOT NULL DEFAULT 0.00,
date DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY(id)
);

INSERT INTO table_group
VALUES
(NULL, 'Товар 1', 1, 543.90, '2017-01-01'),
(NULL, 'Товар 2', 2, 553.90, '2017-02-02'),
(NULL, 'Товар 3', 3, 563.90, '2017-03-03'),
(NULL, 'Товар 4', 4, 583.90, '2017-04-04'),
(NULL, 'Товар 5', 1, 523.90, '2017-05-05');

-- Сумма заказов, сделанных одним пользователем.
SELECT customer, SUM(price)
FROM table_group
GROUP BY customer;
-- Выведем результирущую колонку.
SELECT customer, SUM(price)
FROM table_group
GROUP BY customer
WITH ROLLUP;
--
SELECT customer, SUM(price)
FROM table_group
WHERE name IN ('Товар 1', 'Товар 2', 'Товар 3')
GROUP BY customer
WITH ROLLUP;
--
SELECT customer, SUM(price), YEAR(date) AS year
FROM table_group
WHERE name IN ('Товар 1', 'Товар 2', 'Товар 3')
GROUP BY customer
WITH ROLLUP


HAVING year = '2017';

Комментариев нет:

Отправить комментарий

Materialize-css. Футер

Сделаем футер и прижмем к низу страницы. Документация: https://materializecss.com/footer.html