Count-Abfrage in SQL server

Ich versuche das folgende von X zu Y zu gehen:

tblStationary —> X

Name Stationary ------------------- Peter Crayon Peter Pencil Peter Crayon Peter Crayon Peter Crayon Peter Pencil John Crayon John Crayon 

zu dieser Abfrage: —-> Y

 Stationary Amount ----------------- Crayon 2 Pencil 1 

Buntstift und Bleistift darf nur einmal pro Person gezählt werden. dh: Wenn Peter 2 Bleistifte hat, muss man es als 1. so weiter zählen

Ich habe das folgende ausprobiert und es hilft nicht:

 SELECT Stationary, COUNT(Name) AS Number FROM (SELECT * FROM dbo.tblStationary) AS t GROUP BY Stationary 

   

Ich weiß nicht, ob Ihr RDBMS SELECT DISTINCT unterstützt, aber wenn es so ist, können Sie es so verwenden:

 SELECT Stationary, COUNT(Name) AS Number FROM (select DISTINCT * FROM dbo.tblStationary) as t GROUP BY Stationary 

Also habe ich gerade einen DISTINCT in die innere Abfrage hinzugefügt.

Wenn ja, dann können wir es einfach tun wie folgt

 SELECT Stationary, COUNT(DISTINCT NAME) AS Number FROM tblStationary GROUP BY Stationary