2017-10-10 5 views
1

Pour l'exemple ci-dessous, je me demande comment obtenir le total (c'est-à-dire la somme de toutes les lignes de SUM (total_cost). être facile, mais je l'ai essayé pendant un certain temps maintenant et je suis toujours bloqué Toute aide serait grandement appréciée et je présente mes excuses pour la « noobishness » de cette questionSomme totale d'une colonne dans une table utilisée par groupby

SELECT cate_id,SUM(total_cost) 
FROM purchase    
GROUP BY cate_id; 

+---------+-----------------+ 
| cate_id | SUM(total_cost) | 
+---------+-----------------+ 
| CA001 |   1725.00 | 
| CA002 |   965.00 | 
| CA003 |   900.00 | 
+---------+-----------------+ 
+0

Vous cherchez quelque chose comme ceci? | CA001 | 3590.00 | | CA002 | 3590.00 | | CA003 | 3590.00 | Alors Cochez cette question, https://stackoverflow.com/questions/11357640/using-sum-without-grouping-the-results – Valli

Répondre

3

Vous pouvez utiliser WITH ROLLUP:..

SELECT cate_id, SUM(total_cost) 
FROM purchase    
GROUP BY cate_id WITH ROLLUP; 

Ceci ajoutera une nouvelle ligne avec le total

+0

AVEC ROLLUP était un terme extrêmement utile à la recherche, merci beaucoup! – urandom

1

Pour une solution générale à travers SGBDR, envisager UNION requête sans groupement:

SELECT cate_id, SUM(total_cost) 
FROM purchase    
GROUP BY cate_id 

UNION ALL 

SELECT NULL, SUM(total_cost) 
FROM purchase 
0

Sauf si vous avez vraiment besoin d'utiliser le group by ou besoin de montrer tous les ids la solution la plus propre devrait être:

select sum(total_cost) from purchase; 

Ceci donne la sortie: 3590