0

MS SQL サーバー。私はこの種の状況を持っています:

SELECT
    x1,
    x2,
    x3,
    x4,
    x5,
    x6,
    x7,
    x8,
    x9,
    x10,
    x11,
    x12,
    x13
FROM
    T1  -- this has a lot of columns
JOIN
    T2, -- this has a lot of columns
    T3, -- this has a lot columns as well
    T4, -- same here and other tables
    T5,
    T6,
    T7,
    T8,
    T9,
    T10,
    T11,
    T12,
    T13,
    T14

また、いくつかの重複した行があるため、異なる値を含む列は、選択した 13 列の中にありません。結合されたテーブルのどの列にさまざまな値があるかを見つけて問題を解決し、それをどうするかを決定したいと考えています。

T1.*解決策は、 、 などを選択し、T2.*結果を慎重に分析することです。問題は、多くの列を選択し、反復作業に時間を費やす必要があることです。

私のために自動的にそれを行うツール/手順/クエリはありますか? 複雑なデータベース クエリを開発する場合、これはよくある作業だと思います。

編集

select *クエリ結果の分析を簡素化できる優れたツールを見つけました。

無料のユニバーサル データベース マネージャーであるDbeaverには、結果ビューに "Calc" パネルがあります。任意のセル/行/列を選択でき、その場で値の数と個別の数を計算します。これらは列ごとにグループ化できます。これは、どの列が異なる値を持つかを検索するときに必要なものです。超便利。

参考:https ://github.com/dbeaver/dbeaver/wiki/Panels

4

1 に答える 1

1

1つのオプションはこれです -

SELECT
    x1, count (DISTINCT T1.*),
    x2, count (DISTINCT T2.*),
    x3, count (DISTINCT T3.*)
FROM
    T1  -- this has a lot of columns
JOIN
    T2, -- this has a lot of columns
    T3
GROUP BY
    x1,
    x2,
    x3

これにより、どのテーブルに繰り返し行があるかがわかります (カウント > 1 のテーブル)。その後、それらのテーブルの結合条件を分析できます。

于 2018-04-25T10:34:37.260 に答える