Accessを勉強中です。
入力したデータ(テキストファイルのインポート)の重複除去として、
クエリに登録したデータフィールドすべてに対し、GroupByを実施しております(合計とか、平均とかは選択していない、単純に GroupBy)。
その一方で、最近、DISTINCTROW、DISTINCTを知りました。
DISTINCTROW ---クエリのプロパティで「固有のレコード」Yes
DISTINCT-------クエリのプロパティで「固有の値」Yes
DISTINCTROW、DISTINCTも、クエリのデータフィールドに登録した
ものだけの話であろうと、考えているのですが、明確には理解できていません。 特に「固有のレコード」とは、何をいっているのか、分かりません。分かりやすく解説していただけないでしょうか?
また、データの重複を除去する方法としてのDISTINCTROW、DISTINCTは、
一般的な方法なのでしょうか?
以上、宜しくお願いいたします。
No.1ベストアンサー
- 回答日時:
この回答への補足
早速の回答ありがとうございます。
DISTINCTに関しては、大方、理解できていると思います。
即ち、Selectの結果として得られた、全く同じ行を省くもの。
つまり、目で見える結果の明らかな、重複を省くというもの。
しかし、DISTINCTROWに関しては、よく分からない・・・
基本的に、データベースに取り込む時に、主キーが自動的に
割り振られ、レコードとして絶対に重複しないようななっているのが
データベースだと思います。
http://makotowatana.ld.infoseek.co.jp/access/das …
でも、「フィールドの重複のみでなく、レコード全体で重複しているデータを除外します。」と書かれています。もうこの段階で、理解できません。
意図的に、同じレコードを10行データベースに取り込みました(tab delimita のテキストファイルをimport)。
取り込んだ時点で、Accessは勝手に、IDなるものを付与し、レコードとしては、10行、別々の物となっています(Tableで見る上では)。
このテーブルに対し、ID以外の全fieldをクエリに登録し、DISTINCTROWを実施しても、10行が表示されます(目で見えるのは、全く10行とも同じ内容です)。DISTINCTROWではなく、DISTINCTを実施すると、1行だけとなります。
つまるところ、下記の記述が理解できないのです。
「DISTINCTROW 述語は、クエリで使用するすべてのテーブルからではなく、一部のテーブルからフィールドを選択した場合のみ有効です。このため、クエリの中にテーブルが 1 つのみしかない場合、またはすべてのテーブルからフィールドを出力する場合は、DISTINCTROW 述語は無視されます。」
仮に、そうだ、そうだとして、その時、DISTINCTとDISTINCTROWの違いは何なのか? と言う疑問が出てきてしまいます。
宜しくお願いいたします。
教えていただいたサイトでの情報から、更に1歩進むことができ、
本件、解決しました。DISTINCTROWは、「もし、レコード全体を裏で見て
それが重複していないのであれば、目の前のクエリの結果が、一見、重複していたとしても、重複を許して、そのまま表示する」と言うものなのですね。 これが、DISTINCTだと、とにかく重複していれば、消す。有無を言わさず消す。
また、宜しくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Access(アクセス) お世話になっています いまクエリを作っています。。 デザインビューの画面の集計の欄で、「グループ化」 4 2022/09/17 17:03
- Access(アクセス) Accessのリンクテーブルのパスを相対パスにする方法について教えて頂きたいです 1 2023/02/08 13:29
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Access(アクセス) Accessクエリで年月フィールドを年のみで抽出する方法について 2 2022/08/29 18:10
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) Access DAOのExecuteメソッドのオプション(RecordsetOptionEnum)に 1 2022/09/19 07:34
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS クエリで重複データを最...
-
access・カウント結果がゼロで...
-
「データベースまたはオブジェ...
-
月別の利用者実人員の集計方法
-
ACCESS クエリで、グループ化...
-
ACCESSでクエリを作成したら「...
-
accessで選択クエリで得た全レ...
-
SQLで優先順位が高いレコードを...
-
Accessのフィルタ検索でデータ...
-
Accessで「クエリーが複雑すぎ...
-
AccessでのDISTINCTROW 、DISTI...
-
追加先の発見方法(SQL以外)
-
ACCESS クエリー 抽出条件が...
-
Accessで住所分割 並び順で問題?
-
ACCESSにてフィールド間の最小...
-
選択クエリで偶数月しか表示し...
-
アクセスでフォームが更新でき...
-
MSアクセスのクエリで結果が...
-
SqlServer2012 ビューとクエリ
-
access:連続データ入力
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESS クエリで重複データを最...
-
ACCESSでクエリを作成したら「...
-
ACCESS クエリで、グループ化...
-
access・カウント結果がゼロで...
-
「データベースまたはオブジェ...
-
クエリで「データ型が一致しま...
-
ACCESS クエリー 抽出条件が...
-
ACCESSで2つのテーブル比較で...
-
accessで選択クエリで得た全レ...
-
ACCESSにてフィールド間の最小...
-
access:連続データ入力
-
追加先の発見方法(SQL以外)
-
アクセスのスナップショット
-
ユニオンクエリについて
-
ACCESS のクエリー実行に異常に...
-
SQLで優先順位が高いレコードを...
-
Access あるクエリを利用して...
-
Accessで「クエリーが複雑すぎ...
-
Accessのフィルタ検索でデータ...
-
月別の利用者実人員の集計方法
おすすめ情報