J'ai la table (déjà triée) dans le serveur SQL avec les éléments suivants:Comment écrire une requête SQL qui examine la ligne précédente?
stringname
==========
stringA
stringA
stringB
stringB
stringA
stringC
stringC
stringC
stringA
je voudrais génèrerait les éléments suivants:
stringname previous_stringname count
========== =================== =====
stringA NULL 1
stringA stringA 1
stringA stringB 1
stringA stringC 1
stringB stringA 1
stringB stringB 1
stringC stringA 1
stringC stringC 2
C'est, pour chaque NomChaîne dans la table d'origine et Chacune de l'entrée précédente de ce stringname, je voudrais le sortir avec le nombre de fois qu'il avait chaque chaîne précédente (avec NULL pour la première entrée).
Comment écrire une requête SQL pour cela?
J'utilise SQL Server 2008.
Je ne suis pas sûr que vous serez en mesure de le faire facilement en SQL. Il vaut mieux interroger les données et laisser le programme gérer la logique. –
recherchez ROW_NUMBER() et une jointure automatique –
ROW_NUMBER n'aidera pas car vous ne pouvez pas utiliser une constante dans un ordre par. Vous avez besoin d'un autre identificateur dans la table comme une colonne 'IDENTITY' afin de s'assurer que les noms de chaîne sont interrogés dans l'ordre que vous voulez. – Wil