Maison > base de données > tutoriel mysql > Comment simuler ROW_NUMBER() OVER (PARTITION BY) dans MS Access ?

Comment simuler ROW_NUMBER() OVER (PARTITION BY) dans MS Access ?

Patricia Arquette
Libérer: 2024-12-31 08:41:09
original
1009 Les gens l'ont consulté

How to Simulate ROW_NUMBER() OVER (PARTITION BY) in MS Access?

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal