Obtenir ROW_NUMBER / PARTITION BY dans MS Access
Dans MS Access, vous pouvez émuler la fonctionnalité de la fonction ROW_NUMBER OVER (PARTITION BY) en utilisant une auto-jointure et une agrégation inégales.
Considérez l'exemple data :
Ino | TYPE | DOC |
---|---|---|
1 | 1800xxc1 | 3a |
2 | 1810xxc2 | 3b |
3 | 1700xxc3 | 3c |
4 | 1700xxc4 | 3a |
5 | 1800xxc5 | 3a |
6 | 1800xxc6 | 3a |
7 | 1800xxc7 | 3b |
Pour obtenir un résultat similaire à ROW_NUMBER OVER (PARTITION BY DOC), exécutez la requête suivante :
SELECT t1.DOC, t1.TYPE, COUNT(*) AS [Ino Seq] FROM MyData AS t1 INNER JOIN MyData AS t2 ON t2.DOC = t1.DOC AND t2.Ino <= t1.Ino GROUP BY t1.DOC, t1.TYPE ORDER BY 1, 3
Cette requête renverra la colonne Ino Seq, qui attribue des entiers séquentiels à chaque ligne de la partition (DOC dans ce cas).
Dans ce cas précis, le résultat sera être :
DOC | TYPE | Ino Seq |
---|---|---|
3a | 1800xxc1 | 1 |
3a | 1700xxc4 | 2 |
3a | 1800xxc5 | 3 |
3a | 1800xxc6 | 4 |
3b | 1810xxc2 | 1 |
3b | 1800xxc7 | 2 |
3c | 1700xxc3 | 1 |
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!