--
Группировки могут быть по одному или
нескольким полям.
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';
Комментариев нет:
Отправить комментарий