11
votes

Mysql: obtenir total dans la dernière ligne du résultat mysql

Par exemple, j'ai une table comme celle-ci: xxx pré>

Quand j'ai besoin de tout enregistrement, je fais comme ça et obtenez 3 résultats: p>

select * from tableName 


1 commentaires

Je pense que vous devez exécuter votre demande à nouveau avec une instruction somme () (voir Tizag.com/mysqlTutorial/mysqlsum.php )


6 Réponses :


15
votes
(SELECT product, 
        quantity, 
        something 
 FROM   tablename) 
UNION 
(SELECT "all"          AS product, 
        SUM(quantity)  AS quantity, 
        SUM(something) AS something 
 FROM   tablename) 
This is working query. It will add a fourth row as desired at the end of your result

0 commentaires

1
votes
$q="select sum(quantity), sum(something) from tableName";

0 commentaires

3
votes

Ce n'est pas la meilleure façon de résoudre ce problème, mais devrait faire le tour xxx


0 commentaires

2
votes

Vous pouvez

SELECT Product, Quantity, Something 
FROM TABLENAME

UNION

SELECT 'ALL', SUM(Quantity),SUM(Something) 
FROM TABLENAME


0 commentaires

21
votes

Vous pouvez utiliser Rollup pour générer des totaux, mais vous devez le modifier à une fonction agrégée, comme ceci:

SELECT product, sum(quantity), sum(something)
FROM tableName
GROUP BY product WITH ROLLUP


2 commentaires

Cela devrait être la réponse acceptée, car c'est le plus efficace et le plus court


Fonctionne parfaitement et c'est simple AF



1
votes

Essayez d'éviter la requête des syndicats, il peut augmenter le temps d'exécution en cas de jointures et de requêtes de cas. Donc, comme @chris Strickland dit, utilisez-le avec Rollup.


0 commentaires