web-dev-qa-db-fra.com

Nombre SQL de INNER JOIN

Comment sélectionner le nombre dans une jointure interne avec un groupe?

SELECT COUNT(table1.act) FROM table1
INNER JOIN table2 ON table1.act = table2.act
GROUP BY table1.act

Cela retournera le nombre d'actes trouvé dans la table2.

Ajouter

 SELECT table1.act, COUNT(table1.act) AS test

Résultats

act     test
------- ----
17682   3
17679   3
17677   3
11636   1
11505   1

Je veux recevoir le nombre total d'actes trouvés.

Donc, je veux obtenir 5. Pouvez-vous aider?

9
Steve Payne

Vous pouvez envelopper cette requête dans une autre requête:

SELECT COUNT(*) FROM (
    SELECT COUNT(table1.act) AS actCount FROM table1
    INNER JOIN table2 ON table1.act = table2.act
    GROUP BY table1.act
) t
18
Mosty Mostacho

Utilisez compte distinct

SELECT COUNT(distinct table1.act) FROM table1
INNER JOIN table2 ON table1.act = table2.act
3
ingo
SELECT COUNT(table2.act) FROM table1
INNER JOIN table2 ON table1.act = table2.act
0
Nick

si vous voulez juste que le résultat compte,

SELECT     COUNT(1)
FROM       table1
INNER JOIN table2 ON table1.act = table2.act
GROUP BY   table1.act

cela devrait vous donner 

0
Sean M