SQL Count(Distinct) - wie richtig anwenden?

X_Clamp

Lieutenant
Registriert
Sep. 2010
Beiträge
931
Hallo,

ich habe hier eine Tabelle mit Hostnamen (Spalte host) sowie dem verwendeten Betriebssystem und Browser (Spalte browser). Die Hostnamen sind dabei mehrmals vorhanden und haben natürlich jedes Mal das gleiche Betriebsystem/ Browser im Einsatz. Ich will nun die Anzahl an Hosts ermitteln, die als Webbrowser den Internet Explorer einsetzen. Wie bekomme ich nun einen distinct Befehl hin, der mir die bereinigte Anzahl an hosts ausgibt, die den Internet Explorer verwenden?

Momentan lautet meine Abfrage so:
SELECT COUNT(DISTINCT host) AS Anzahl_Internet_Explorer
FROM table
WHERE browser LIKE '%Internet Explorer%'
GROUP BY browser

Der Befehl funktioniert soweit, jedoch wird mir nicht auf einen Schlag die Anzahl ausgegeben, sondern eine Liste mit aufaddierten Werten je Host. Ich möchte aber am Ende nur eine Zahl haben, die die Anzahl an Hosts mit verwendetem Internet Explorer wiederspiegelt.
 
Soweit ich weiß, müsste der Befehl COUNT (HOST) DISTINCT lauten. Sicher bin ich mir dabei aber nicht...
 
Guten Morgen!

Geht ganz einfach ohne Gruppierung mit einer Unterabfrage:

SELECT COUNT(*) AS Anzahl_Internet_Explorer
FROM (SELECT DISTINCT HOST
FROM table
WHERE browser LIKE '%Internet Explorer%') as erg

Gruß, Lemmy
 
SELECT COUNT(DISTINCT host) AS Anzahl_Internet_Explorer
FROM table
WHERE browser LIKE '%Internet Explorer%'

Mehr brauchste eigentlich nicht, durch das group by wird er es noch mal in Häppchen zerlegt haben, je nach dem was bei browser drin stand
 
Danke an alle für die Hilfestellungen! Das Statement von mambokurt tut seinen Dienst hervorragend ....
 
Zurück
Oben