[SQL Runday] HackerRank - Symmetric Pairs
3459 ワード
各X、Yには値のテーブル関数があります.X 1=Y 2、X 2=Y 1の条件が満たされると(X 1、Y 1)、(X 2、Y 2)両値が対称になる.(Symmetric pairs) 対称ペアのクエリーをすべて書き出します. X値を基準に昇順で並べ替えます. クエリX 1<=Y 1の値のみ.
以下のX、Y値のテーブル機能があります.
1、10、10、1<このような対称的なペアを見つけなければならない. 出力は1、10<ペアのみ. まずX 1=Y 2の2つの値を基準にJoinを行う考え. where条件もあり、X 2=Y 1を満たす行のみを検索し、f.X<=f.Y条件を追加すればよい そして問題が発生し、どうせ同じテーブルなので、自分と同じ行でも対称対のように調べられました. 2値を持つ行は2 2 2に問い合わせることができる. 2の値を持っていれば、自分の他の行ではなく2、2が対称対です. この問題を解決するために 全題もそうしているのですが、どうしたらいいのかわかりません. でも最後は1313<2回撮られた 照会 これが正しい方法かどうかは不明です.他の人がどのように解決したのか議論すべきかもしれません.
Table
以下のX、Y値のテーブル機能があります.
Key points
Errors
row_index
テーブルごとに変数を作成した.distinct
一度だけ.最終クエリー
set @index = 0;
set @index1 = 0;
select distinct f.X, f.Y
from (select X, Y, @index:= @index+1 as row_index from functions)f
inner join(select X, Y, @index1:= @index1+1 as row_index1 from functions)f1
on f.X = f1.Y
where f.Y = f1.X and f.X <= f.Y and row_index != row_index1
order by f.X
Reference
この問題について([SQL Runday] HackerRank - Symmetric Pairs), 我々は、より多くの情報をここで見つけました https://velog.io/@honeybeat1/SQL-Runday-HackerRank-Symmetric-Pairsテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol