私は三つのフィールドを持っていると私は同じでユニークなレコードを知りたいc3
とc1
異なりますc2
。
私c1
、c2
およびc3
列名です。私は同じでc1
、c3
どこがc2
違うのかを知る必要があります。
例えば。
+-----+------+--------+
| c1 | c2 | c3 |
+-----+------+--------+
| A10 | Z10 | text1 |
| A10 | Z10 | text1 |
| A10 | Z40 | text2 |
| A10 | Z50 | text1 |
| A20 | Z100 | text1 |
| A20 | Z200 | text1 |
| A50 | Z10 | text1 |
| A60 | Z10 | text1 |
| A60 | Z10 | text1 |
+-----+------+--------+
私の出力要求は重複しているため、A10
グループからのものC3
です
だから私は必要です:
+-----+-----+-------+
| c1 | c2 | c3 |
+-----+-----+-------+
| A10 | Z10 | text1 |
| A10 | Z50 | text1 |
+-----+-----+-------+
からA20
とグループの両方が表示されますC3
同じで、C2
異なっています。
+-----+------+-------+
| c1 | c2 | c3 |
+-----+------+-------+
| A20 | Z100 | text1 |
| A20 | Z200 | text1 |
+-----+------+-------+
また、A50およびA60からは、一意または重複しているため、出力には何も含まれません。
最終的な出力は次のとおりです。
+-----+------+-------+
| c1 | c2 | c3 |
+-----+------+-------+
| A10 | Z10 | text1 |
| A10 | Z50 | text1 |
| A20 | Z100 | text1 |
| A20 | Z200 | text1 |
+-----+------+-------+
重複するC3を見つけようとし、さまざまな結合を適用しましたが、必要な結果を得ることができませんでした。
これにより、必要なものが得られます。
with t as
(
select
c1,
c3,
count(distinct c2) as n
from
YourTable
group by
c1,
c3
having
count(distinct c2) > 1
)
select distinct
YourTable.c1,
YourTable.c2,
YourTable.c3
from
YourTable
inner join
t
on
YourTable.c1 = t.c1
and YourTable.c3 = t.c3
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加