Comment utiliser sum() à l'intérieur d'un group_concat()?
Question révisé
Voulais vraiment un group_concat des sommes...
Table: magasins
+---------+--------+--------+
| shop_id | name | state |
+---------+--------+--------+
| 0 | shop 0 | 5 |
| 1 | shop 1 | 5 |
| 2 | shop 2 | 5 |
| 3 | shop 3 | 2 |
+---------+--------+--------+
De la Table: articles
+------------+--------------+
| shop | item | quantity |
+------------+--------------+
| 0 | 0 | 1 |
| 0 | 1 | 2 |
| 0 | 2 | 3 |
| 1 | 0 | 1 |
| 1 | 1 | 2 |
| 1 | 2 | 3 |
| 2 | 0 | 1 |
| 2 | 1 | 2 |
| 2 | 2 | 3 |
| 3 | 0 | 1 |
| 3 | 1 | 2 |
| 3 | 2 | 3 |
+------------+--------------+
SELECT state,SUM(i.quantity) total
FROM shops s2
LEFT JOIN items i ON i.shop=s2.shopid
WHERE state=5
GROUP by item
result #1:
+--------+---------+
| state | total |
+--------+---------+
| 5 | 3 |
+--------+---------+
| 5 | 6 |
+--------+---------+
| 5 | 9 |
+--------+---------+
But I would like the totals, like this:
result #2:
+--------+---------+---------+----------+
| state | total 0 | total 1 | total 2 |
+--------+---------+---------+----------+
| 5 | 3 | 6 | 9 |
+--------+---------+---------+----------+
or using group_concat()
result #3
+--------+---------+
| state | totals |
+--------+---------+
| 5 | 3,6,9 |
+--------+---------+
Je ne peux pas sembler obtenir group_concat de saisir le total de la colonne dans le résultat #1
Merci d'avance
Vous devez vous connecter pour publier un commentaire.
Changement:
À
--
Trouvé un moyen de le faire :
Comme je sais que vous ne pouvez pas le faire dans MySQL. Les colonnes dynamiques sont pris en charge uniquement dans la mesure de group_contcat() qui sont toujours des agrégats de plusieurs résultats de lignes dans une seule colonne.
Uniquement si vous avez un fixe/nombre limité de
Total X
-s, vous pouvez les déclarer dans la requête explicitement en soi.