1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
| --------------
SET AUTOCOMMIT = 0
--------------
--------------
START TRANSACTION
--------------
--------------
DROP DATABASE IF EXISTS `base`
--------------
--------------
CREATE DATABASE `base`
DEFAULT CHARACTER SET `latin1`
DEFAULT COLLATE `latin1_general_ci`
--------------
--------------
DROP TABLE IF EXISTS `test`
--------------
--------------
CREATE TABLE `test`
( `id` integer unsigned not null auto_increment primary key,
`month` char(10) not null,
`year` smallint unsigned not null,
`price` integer unsigned not null,
`label` text not null
) ENGINE=MyIsam
DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
ROW_FORMAT=COMPRESSED
--------------
--------------
insert into `test` (`month`,`year`,`label`,`price`) values
('janvier', 2016, 'dossier', 10),
('mars', 2016, 'foo', 25),
('janvier', 2016, 'dossier', 20),
('janvier', 2016, 'formation', 5),
('janvier', 2016, 'formation', 10),
('janvier', 2016, 'pub', 20)
--------------
--------------
select * from test
--------------
+----+---------+------+-------+-----------+
| id | month | year | price | label |
+----+---------+------+-------+-----------+
| 1 | janvier | 2016 | 10 | dossier |
| 2 | mars | 2016 | 25 | foo |
| 3 | janvier | 2016 | 20 | dossier |
| 4 | janvier | 2016 | 5 | formation |
| 5 | janvier | 2016 | 10 | formation |
| 6 | janvier | 2016 | 20 | pub |
+----+---------+------+-------+-----------+
--------------
select year, month, sum(price) as price, group_concat(label) as label
from (
select year, month, sum(price) as price, concat(label, ':', sum(price)) as label
from test
group by year, month, label
) as x
group by year, month
--------------
+------+---------+-------+--------------------------------+
| year | month | price | label |
+------+---------+-------+--------------------------------+
| 2016 | janvier | 65 | dossier:30,formation:15,pub:20 |
| 2016 | mars | 25 | foo:25 |
+------+---------+-------+--------------------------------+
--------------
COMMIT
--------------
--------------
SET AUTOCOMMIT = 1
--------------
Appuyez sur une touche pour continuer... |