2012-07-15 2 views
0

J'ai un ensemble de données qui n'est pas défini la meilleure façon de voir un échantillon ci-dessous.count colonnes où column1 LIKE% quelque chose%

col1|col2|col3 
john smith|10|3 
tom smith|8|3 
sean smith|12|3 
sean smith|5|33 
john smith|3|32 
john smith|6|13 

Comme vous pouvez le voir, col1 a plusieurs enregistrements qui sont identiques. Je veux être capable de regrouper toutes les entrées avec la même valeur dans col1 et la sortie puis dans la première ligne Je veux aussi afficher une autre colonne qui est la somme de col2 * col3 de sorte que ma sortie ressemble à la au dessous de.

col1|col2|col3 
john smith|19|48|912 
sean smith|17|36|612 
tom smith|8|3|24 

Serait-il préférable d'utiliser mySQL Sum ici? Comment puis-je écrire cette déclaration select quand je ne sais pas ce que sera «WHERE», mais je veux juste qu'il produise le résultat pour chaque nom?

Répondre

3

Vous pouvez le faire comme ça aussi ::

Select 
col1, SUM(col2), SUM(col3), SUM(col3)*SUM(col2) 
from table group by col1 
+0

merci, cela fonctionne bien si je veux commander par la somme col3 * col2 y at-il une meilleure façon de faire cela que ORDER BY SUM (col3) * SOMME (col2) ASC (cela fonctionne peut devenir long dans certains cas si si la somme est plus complexe) – ak85

+0

@ ak85: Je viens de vous donner la même requête que Sashi kant a répondu (avec une petite modification), mais essayez sa requête, car il a référé les colonnes comme alias –

1

Try this ::

Select 
col1, SUM(col2) as b, SUM(col3) as c, SUM(col2)*SUM(col3) as d 
from table group by col1 
+0

Je reçois une erreur ici ** Unknown column « b 'dans' liste des champs '** avec le code ci-dessus. Quand je sors, b * c il n'y a pas d'erreur mais ne donne pas la somme de b * c. J'ai passé en revue une certaine documentation au sujet de l'alias de sql et ne peux pas voir n'importe quoi mal avec ceci. Savez-vous quel est le problème ici? – ak85

1

Essayez ceci:

SELECT col1,SUM(col2),SUM(col3),SUM(col2)*SUM(col3) FROM table 
GROUP BY col1 
+0

Qu'est-ce que la quatrième colonne? –

+0

Alors quel est le diff entre votre réponse et Shanky, S'il vous plaît poster quelque chose qui est différent, Si la réponse à ce que vous pensez alors s'il vous plaît l'apprécier avec une upvote –

+1

Lol, ajouté avant votre commentaire! A souligné, figuré beaucoup répondrait rapidement sur une question si facile;) – NewInTheBusiness

Questions connexes