2010-02-13 27 views

Répondre

1

Cela vous donnera le nombre de type pour le type de ligne en cours dans chaque ligne:

select t1.*, t2.TypeCount 
from Table1 t1 
inner join (
    select TYPE, count(*) as TypeCount 
    from Table1 
    group by TYPE 
) t2 on t1.TYPE = t2.TYPE 
+0

merci beaucoup! fonctionne très bien! –

1

Typiquement, nous arrivons à obtenir ceci à l'aide de deux ensembles de résultats distincts. Cependant, il est possible de les obtenir en un seul avec une requête semblable au suivant

SELECT ID, Name, Type 
    FROM MyTable 
    UNION 
    SELECT -1, Type, COUNT(*) 
    FROM MyTable 
    WHERE Type = 2 
    GROUP BY Type 
    ORDER BY ID 

L'hypothèse est que tous les ID normaux sont> 0 permettant à -1 comme marqueur pour la ligne avec le comte. Cette ligne sera la première du résultat, grâce à l'ORDER BY. Notez que nous pourrions compliquer un peu les choses et obtenir un compte pour tous les types (ou pour plusieurs), en supprimant simplement (ou en changeant) la clause WHERE dans la deuxième requête.

+0

merci pour la réponse! –

Questions connexes