2017-10-04 13 views
0

J'ai une requête qui résume toutes les valeurs de la colonne "Total" et les aligne sur leur combinaison unique de nom de stockage, année, marque et modèle (via un groupe par):Nombre de SQL Nombre d'occurrences pour une distinction de plusieurs lignes, par ligne distincte

select storename, year, make, model, sum(total) as [Sum] 
    from #TempTable 
    group by storename, year, make, model 

un exemple des résultats:

StoreA 2009 TOYO AVALON 1039.95 
    StoreB 2005 CHET TAHOE 1039.99 
    StoreC 2010 MAZD CX-9 1040.07 
    StoreD 2007 DODG CHARGER 1040.09 
    StoreE 2003 ACUT MDX  1040.17 

ce que je veux faire est d'ajouter une autre colonne à cette requête qui compte le nombre de lignes existent dans chaque groupe. Par exemple, je sais qu'il y a 5 instances d'un TOYO AVALON 2009 chez StoreA, mais je veux que le script comprenne combien il y en a pour chaque combinaison unique de nom de stockage, année, marque, modèle. Et je veux l'afficher comme une colonne supplémentaire [CarCount] à droite de [Sum].

Il doit y avoir un moyen, mais je n'ai pas été en mesure de trouver une solution. Merci de votre aide!

Répondre

0

Ajouter (*) à la requête, il comptera le nombre de cas dans ce groupe

select storename, year, make, model, sum(total) as [Sum], count(*) carcount 
    from #TempTable 
    group by storename, year, make, model 
+1

Valli, merci pour votre réponse. C'est exactement ce dont j'avais besoin. –

0

À moins d'avoir mal compris, vous avez besoin du nombre de regroupements existants. Il suffit d'utiliser COUNT pour l'obtenir. comte

select storename, year, make, model, sum(total) as [Sum], COUNT(1) as CarCount 
    from #TempTable 
    group by storename, year, make, model 
+0

AB_87, je vous remercie de votre réponse! Il est très similaire à celui proposé par Valli ci-dessus. J'ai couru les deux requêtes et ils produisent les mêmes résultats, donc je me demande quelle serait la différence entre count (*) et count (1)? –

+0

@JordanMcDonald Il n'y avait pas de réponse quand j'ai soumis le mien. Nous avons tous deux soumis presque en même temps. Ça arrive. Il y a beaucoup de questions autour de 'COUNT (1)' et 'COUNT (*)'. Voici le lien vers l'une des questions les plus populaires. https://stackoverflow.com/questions/1221559/count-vs-count1 –