同じテーブル内の2つの行を比較してSQLでの等価性を確認する
>> 私のデータベースに次の表があります: <<
このテーブルのDDLはどこにありますか? 鍵は何ですか? どのようなデータ型ですか? 制約は何ですか? あなたは本当に何も投稿しませんでした。 しかし、それよりも悪いことに、RDBMSには一般的で魔法的で普遍的な「id」のようなものがあると信じているようです。 ありません。 私たちはキーを使用し、定義上、キーはテーブルの列のサブセットであり、そのテーブルのすべての行に対して一意になります。 あなたが投稿することを意図していたかもしれないことを推測すると、私はこれを推測するでしょう:
テーブルを作成しますInsurance_Policies
(foobar_id CHAR(2)NOT NULLプライマリキー
チェック(foobar_id LIKE”),
policy_nbr CHAR(5)NOT NULL
チェック(policy_nbr LIKE”)
INSERT INTO Insurance_Policies
VALUES
(’01’, ‘34564’),
(’02’, ‘67548’),
(’03’, ‘34564’),
(’04’, ‘98271’),
(’05’, ‘90198’);
(’06’, ‘98271’);
私は、5行すべてのpolicy_nbr列の値を比較し、少なくとも1つの他の行に等しい値を持つ行を返すsqlクエリを探しています。
SELECT policy_nbr,MIN(foobar_id),MAX(foobar_id)
From Insurance_Policies
GROUP BY policy_nbr
HAVING COUNT(*) > 1;
私たちは仕様を持っていないので、ポリシー番号ごとに2つの重複foobar_idしかないと仮定しました。 これは、私たちが人々にDDLを投稿するように頼む多くの理由の1つです。 私が正しければ、これを保証するためにあなたのテーブルに制約を置くでしょう。
助けを求めるときは、DDLを投稿し、ANSI/ISO標準に従ってください。