J'ai la requête SQL suivante:
SELECT Device, Value FROM tbTest WHERE Class LIKE 'OperatingSystem' AND Type LIKE 'Caption' ORDER BY Device
Cela résulte dans le tableau suivant:
Device Value ITADMIN Microsoft Windows Server 2016 Datacenter NB6826 Microsoft Windows 10 Pro TOPDESK Microsoft Windows Server 2008 R2 Standard W1DC1 Microsoft Windows Server 2012 R2 Datacenter W1DC2 Microsoft Windows Server 2012 R2 Datacenter W1SRVSEP Microsoft Windows Server 2008 R2 Standard W2DC1 Microsoft Windows Server 2008 R2 Standard
Ce que je voudrais faire est de countr toutes les occurrences d'un champ dans une rangée et de l'append à chaque ligne comme une nouvelle colonne. Donc, fondamentalement, j'ai besoin d'une requête qui génère ceci:
Device Value Count ITADMIN Microsoft Windows Server 2016 Datacenter 1 NB6826 Microsoft Windows 10 Pro 1 TOPDESK Microsoft Windows Server 2008 R2 Standard 3 W1DC1 Microsoft Windows Server 2012 R2 Datacenter 2 W1DC2 Microsoft Windows Server 2012 R2 Datacenter 2 W1SRVSEP Microsoft Windows Server 2008 R2 Standard 3 W2DC1 Microsoft Windows Server 2008 R2 Standard 3
Y a-t-il un moyen de le faire? Toutes mes tentatives ont abouti à des requêtes impossibles à traiter ou à une sortie inutilisable. Toute aide serait appréciée!
Vous avez besoin d'une fonction de comptage fenêtré qui countra le nombre d'loggings dans la colonne de valeur pour chaque valeur distincte
SELECT Device, Value, COUNT(value) OVER (PARTITION BY value) FROM tbTest WHERE Class LIKE 'OperatingSystem' AND Type LIKE 'Caption' ORDER BY Device