複数の列で重複しないエントリを選択する必要があります(Last_name、First_Name)。 SELECTの一部としてCOUNT(First_Name)を使用して、結果のエントリ数を確認します。駆動テーブルの列値を追加する
SELECT Last_Name, First_Name, COUNT(First_Name)
FROM table_of_people_and_their_data
GROUP BY LAST_Name HAVING COUNT(First_Name) = 1;
- すべての個別のエントリとそのエントリの数をチェックとして与えます。
SELECT Last_Name, First_Name, COUNT(First_Name)
FROM table_of_people_and_their_data
GROUP BY LAST_Name HAVING COUNT(First_Name) > 1;
- すべてのエントリに重複があり、重複が数えられます。
すべてが同じ表のものです。
table_of_people_and_their_dataには多くの列があります。姓と名によるソートのみ。
ここでcount(table_of_people_and_the_data)は957個の行を生成します。
最初のクエリ= 1のカウントは120行を生成します。 2番目のクエリの
カウント> 1は、359行を生成します。
これらのクエリの 合計は479行です。 120 + 359 = 479Iが重複する行との結果が837行数を有していると仮定する。 957から120 = 837
Iが与えられたクエリは3つの列、LAST_NAME、FIRST_NAME、COUNT(FIRST_NAME)
何か等を読み出し、テーブル生成:
Last_Name | First_Name | Count
Jack Frost 3
Sally Soft 4
などをに。 Count列を追加すると、Count列の結果がすべて837になるため、以前のクエリを証明できます。
これを1つのクエリでどのように実現できますか。上記の使用クエリは次のように変更されました:
SELECT Last_Name, First_Name, SUM(mycount)
FROM COUNT(First_Name) mycount FROM table_of_people_and_their_data
GROUP BY LAST_Name HAVING COUNT(First_Name) > 1;
エイリアスとドライブドテーブルを使用すると多くのバリエーションを試しました。ほとんどのエラーが戻ってきました。エラー1248(42000):すべての派生テーブルには別のエイリアスが必要です
ありがとうございました。
は私たちにサンプル入力と出力を表示します。 –