2011-12-01 4 views
4

C'est mon scriptgroupe SQL par le comte de comtes

SELECT COUNT([Id]) as [Count Of Register], 
Tag as [Tag] 
FROM [Members] 
Group By Tag 
Order By [Count Of Register] Desc; 

Table Retourné est comme ceci:

Count Tag 

550 ----1 
550 ----2 
545 ----3 
545 ----4 
545 ----5 

Alors, cette fois, je dois le comte de Tag, Groupe par ce nouveau champ Nombre.

Certaines valeurs renvoyées Like:

2 ---550 
3 ---545 

Est-il possible sans utiliser une nouvelle table ou modèle de table ou d'une table de stockage juste en question?

+2

Quels sont vos résultats souhaités? '(550,2), (545,3)'? –

+0

@MartinSmith Oui, j'édite la question – Saeid

Répondre

10
SELECT [Count Of Register], COUNT(1) [Grouped Count] 
FROM 
(
    SELECT COUNT([Id]) as [Count Of Register], 
      Tag as [Tag] 
    FROM [Members] 
    Group By Tag 

) MyTable 
GROUP BY [Count Of Register] 
+0

Il y a une erreur: Msg 1033, Niveau 15, État 1, Ligne 19 La clause ORDER BY n'est pas valide dans les vues, les fonctions inline, les tables dérivées, les sous-requêtes et les expressions de table communes. ou FOR XML est également spécifié. – Saeid

+0

J'ai enlevé l'ordre par et cela fonctionne correctement – Saeid

+0

D'oh, ouais, désolé à ce sujet, vous ne pouvez pas utiliser la commande par une requête interne! Échantillon fixé. –

1

Vous pouvez utiliser

SELECT [Count Of Register], COUNT(*) FROM 
    (SELECT COUNT([Id]) as [Count Of Register], Tag as [Tag] 
    FROM [Members] GROUP BY Tag) q 
GROUP BY [Count Of Register] 
+0

Il y a une erreur: Le nom de la colonne n'est pas valide. pour Count (Tag) – Saeid

+0

@Saeid: essayez ma réponse éditée ... – Marco

0

mysql> create table ORDER1 (compteur int (3) non nulle clé primaire auto_increment, -> int tag (3)); Query OK, 0 lignes affectées (0,01 sec)

mysql> insérer dans les valeurs de ORDER1 (500,20); // insérer des valeurs somany comme u nécessaire et vérifier insert en valeurs de ORDER1 (500,20); insérer dans les valeurs order1 (600,20); mysql> sélectionnez le compteur, comptez (*) de la commande1 groupez par compteur