Meiste Logins pro Computer

kroto

Neuer Benutzer
Beiträge
2
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.

Vielen Dank schon mal an alle die Versuchen zu helfen.

Gruß kroto
 
Werbung:
Du könntest rank() verwenden.

Code:
test=*# select * from kroto ;
 pc  |  name  | anzahl
-----+--------+--------
 pc1 | axwl  |  3
 pc1 | petra  |  2
 pc2 | winni  |  4
 pc2 | mustaf |  4
 pc3 | gustaf |  3
(5 Zeilen)

test=*# select *, rank() over (partition by pc order by anzahl desc) from kroto ;
 pc  |  name  | anzahl | rank
-----+--------+--------+------
 pc1 | axwl  |  3 |  1
 pc1 | petra  |  2 |  2
 pc2 | winni  |  4 |  1
 pc2 | mustaf |  4 |  1
 pc3 | gustaf |  3 |  1
(5 Zeilen)

test=*# select pc, name, anzahl from (select *, rank() over (partition by pc order by anzahl desc) from kroto) tmp where rank = 1 ;
 pc  |  name  | anzahl
-----+--------+--------
 pc1 | axwl  |  3
 pc2 | winni  |  4
 pc2 | mustaf |  4
 pc3 | gustaf |  3
(4 Zeilen)

test=*#
 
Werbung:
Das ginge z.B. so:
Code:
SELECT   t.*
FROM   (

SELECT   ROW_NUMBER() OVER (PARTITION BY [Computername] ORDER BY count(*) DESC) AS zeile,
     [Computername],
     [Username],
     count(*) AS [Anzahl Logins]
FROM   Daten
GROUP BY [Computername],[Username]

     ) t
WHERE   t.zeile = 1

PS: Sry hab die Posts nicht gesehen.
 
Zurück
Oben