ホームページ > データベース > mysql チュートリアル > MS Access で ROW_NUMBER() OVER (PARTITION BY) 機能をシミュレートするにはどうすればよいですか?

MS Access で ROW_NUMBER() OVER (PARTITION BY) 機能をシミュレートするにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-24 21:47:11
オリジナル
583 人が閲覧しました

How Can I Simulate ROW_NUMBER() OVER (PARTITION BY) Functionality in MS Access?

MS Access での行番号付けの実現

SQL Server などのデータベースで一般的に見られる「パーティション分割による行番号」機能を使用すると、次のことが可能になります。結果セットの指定されたパーティション内の行に連続する整数値を割り当てること。 MS Access はこの関数をネイティブにサポートしていませんが、同様の結果を達成することは可能です。

自己結合メソッド

「パーティション上の行番号」をエミュレートする 1 つのアプローチAccess の「By」は、不等な自己結合を介して行われます。次のテーブルについて考えてみましょう。

Ino Type DOC
1 1800xxc1 3a
2 1810xxc2 3b
3 1700xxc3 3c
4 1700xxc4 3a
5 1800xxc5 3a
6 1800xxc6 3a
7 1800xxc7 3b

次のクエリは、自己結合を使用して、「DOC」フィールドに基づいてパーティション内の行番号を計算します。

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
ログイン後にコピー

このクエリは、次の結果:

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

以上がMS Access で ROW_NUMBER() OVER (PARTITION BY) 機能をシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート