2016-07-01 8 views
0

数値が同じ列の同じIDの前の数値に戻ったかどうかを調べるサポートを探しています。数値がSQLの同じ列に戻ったかどうかを確認

以下はデータセットの例です。

ID  Number Date  Sequence Count 
10000B1 60  28.10.2015 10 
10000B1 57  28.09.2015 9 
10000B1 58  28.08.2015 8 
10000B1 57  29.07.2015 7 
10000B1 56  30.06.2015 6 
10000B1 55  01.05.2015 5 
10000B1 54  05.04.2015 4 
10000B1 53  06.03.2015 3 
10000B1 52  08.02.2015 2 
10000B1 51  09.01.2015 1 

同じIDで番号が前の番号に戻った場合、例外を見つけたいと思います。例えば

:もう一度数列数57と数7と9のシーケンスに数を数える58の代わりに、59

でしたから戻って57に行きました同じ列に57

または数でありますあなたはSQLでこれらのタイプのケースを見つけるためにSQLで私をサポートしてください?

ありがとうございました。 ラヴィ

+0

繰り返し番号はgroup by節で見つけることができます。しかし、「SQLを使ってこれらのタイプのケースを見つけるためにSQLで私をサポートしてくれませんか?」とどういうことを説明してください。他の問題もありますか? –

+0

これはどのRDBMSですか? 'mysql'、' postgresql'、 'sql-server'、' oracle'、 'db2'のどれかを指定するタグを追加してください。 –

答えて

1

は、おそらくこれは、あなたが欲しいものを行います。あなたは数およびシーケンスの

select a.* from your_table as a 
inner join your_table as b on a.date > b.date and a.number < b.number 
あなたの列名を持つ

a.ID, a.`Number`, a.`Date`, a.`Sequence Count` 
from from apple_table as a 
inner join apple_table as b on a.`Date` > b.`Date` and a.`number` < b.`number` 

を試すことができます

select t.* 
from Apple t 
where exists (select 1 
       from Apple t2 
       where t2.id = t.id and 
        t2.number = t.number and 
        t2.sequence < t.sequence 
      ); 
+0

コード内で列の参照をしてください。あなたは 'Apple'という名前のテーブルを使うことができます。 – user1045369

+0

このコードは動作していますが、私が探している結果が得られません。私はちょうど数字の繰り返しを見るか、前の数字に戻ってみたい。 – user1045369

+0

@ user1045369 。 。これは、番号が繰り返されるすべての例を提供するはずです。実際に何が起こっているかを示すためにSQL Fiddleをセットアップできますか? –

0

する必要があります
a.ID, a.`Number`, a.`Date`, a.`Sequence Count` 
from from apple_table as a 
inner join apple_table as b on a.`Sequence Count` < b.`Sequence Count` and a.`number` > b.`number` 
+0

コード内で列の参照をしてください。あなたは 'Apple'という名前のテーブルを使うことができます。 – user1045369

+0

私はテーブルの列の参照とapple_tableの答えを更新しました..希望は明確です – scaisEdge

+0

このコードは動作していますが、私が探している結果が得られません。私はちょうど数字の繰り返しを見るか、前の数字に戻ってみたい。 – user1045369

関連する問題