web-dev-qa-db-fra.com

SUM (sous-requête) dans MYSQL

Fondamentalement, j'essaye ce qui suit:

SELECT m.col1, SUM(SELECT col5 FROM table WHERE col2 = m.col1)
FROM table AS m

Cela ne semble pas fonctionner. y-a-t'il une solution?

25
Dänu

Pourquoi tu ne fais pas ça:

SELECT m.col1, (SELECT SUM(col5) FROM table WHERE col2 = m.col1)
FROM table AS m
36
Mithrandir

oui - utiliser les jointures

SELECT m.col1, SUM(j.col5) FROM table AS m 
       JOIN table AS j ON j.col2 = m.col1 GROUP BY m.col1
4
SergeS

La somme est utilisée à l'intérieur de la deuxième sélection, où nous voulons additionner la colonne. La colonne col2 peut être ambiguë, si une telle colonne existe dans la table m.

SELECT
    m.col1,
    (SELECT SUM(t.col5) FROM table AS t WHERE t.col2 = m.col1) AS sumcol
FROM table AS m
2
Rolice