[sql]

kroto

Lt. Junior Grade
Registriert
Feb. 2015
Beiträge
449
Hallo Zusammen,

ich hoffe hier kann mir jemand weiterhelfen.
Und zwar habe ich eine Tabelle in der viele Daten bezüglich Anmeldungen stehen. Und ich möchte um den Hauptbenutzer zuordnen zu können herausfinde, wer sich wie oft an welchen PC Angemeldet hat.

Ich habe aus dieser Tabelle mit einem Query jetzt einen Dreispalter gemacht.

Select a.[Computername]
,a.Username
a.[Anzahl Logins]

From
(SELECT
[Computername]
,[Username]
,( Count ([Computername))AS 'Anzahl Logins'
FROM Daten WITH (NOLOCK)

Group by
[Computername]
,[Username]
,[Anzahl Logins]


) AS A

Dieser sieht wie folgt aus.


Computername Username Anzahl Logins
PC1 Axel 3
PC1 Petra 2
PC2 Winni 4
PC2 Mustaf 4
PC3 Gustaf 3
... ... ...
Jetzt weiß ich nicht wie ich es schaffe, aus diesen Daten für jeden PC den User mit den meisten Logins herauszubekommen. Anzahl Logins kann gleich sein, dann kann er ruhig beide Benutzer ausgeben.

Tabelle Müsste am ende so aussehen.

Computername Username Anzahl Logins
PC1 Axel 3
PC2 Winni 4
PC2 Mustaf 4
PC3 Gustaf 3

Habe es schon mit Max() versucht bekomme aber sobald ich den Username mit dazu nehmen will das gleiche Ergebnis wie oben.

Vielen Dank schon mal an alle die Versuchen zu helfen.

Gruß kroto
 
SELECT DISTINCT könnte helfen (Ausprägungen), ob der COUNT dann aber noch so funktioniert wie aktuell implementiert kann ich Dir aber nicht genau sagen...
 
Hmm

Select Distinct würde auch nur Datensätze raus filtern, die Doppelt sind. und Doppelt ist ja kein Datensatz.

Gruß kroto
 
Code:
SELECT sub.*
FROM table sub
  INNER JOIN (SELECT
                pcname,
                max(anzahl) AS anzahllogins
              FROM table
              GROUP BY pcname) groupedlogin
    ON sub.pcname = groupedlogin.pcname
       AND sub.anzahl = groupedlogin.anzahllogins;



YWmpZOQ.png


So?
 
Zurück
Oben