Est-il possible d'ajouter une colonne d'identité à un GROUP BY afin que chaque doublon ait un numéro d'identité?Est-il possible d'ajouter une identité à un GROUP BY en utilisant SQL?
Mes données d'origine ressemble à ceci:
1 AAA [timestamp]
2 AAA [timestamp]
3 BBB [timestamp]
4 CCC [timestamp]
5 CCC [timestamp]
6 CCC [timestamp]
7 DDD [timestamp]
8 DDD [timestamp]
9 EEE [timestamp]
....
Et je veux le convertir en:
1 AAA 1
2 AAA 2
4 CCC 1
5 CCC 2
6 CCC 3
7 DDD 1
8 DDD 2
...
La solution était:
CREATE PROCEDURE [dbo].[RankIt]
AS
BEGIN
SET NOCOUNT ON;
SELECT *, RANK() OVER(PARTITION BY col2 ORDER BY timestamp DESC) AS ranking
FROM MYTABLE;
END
i essayé SELECT *, RANK() OVER (ORDER BY col2) AS rang de table et il se bloque mon studio de gestion SQL2005 ... – djangofan
pas oublier d'utiliser ** PARTITION BY ** comme dans l'exemple. –
SELECT *, ROW_NUMBER() OVER (PARTITION BY col2) bloque également mon studio de gestion sql. Ce classement et partition est bizarre .... je ne peux pas comprendre. – djangofan