私は複雑なデータベースルールをテストしており、以下のシナリオをテストするロジックを策定するのに役立つ必要があります。ランクに基づいてSQLクエリ結果からレコードを取得
私は以下のように出力を持って、ルールがあるのは、テーブル名の一時
BUSINESS_KEY STATUS_KEY CREATE_TIMESTAMP
123 a1 1 P.M.
123 a1 1:30 P.M.
123 b1 2:00 P.M.
123 a1 2:30 P.M.
私は番目のレコードを破棄しなければならない上記
BUSINESS_KEY STATUS_KEY CREATE_TIMESTAMP
123 a1 1 P.M.
123 b1 2:00 P.M.
123 a1 2:30 P.M.
のうち、記録の下にピックアップするとしましょう同じstatus_keyが連続したタイムスタンプの出力に1:00 PMよりも上の例のように出力された場合および1:30 P.M.には、最も古いタイムスタンプレコードのみが取得されます。最初のレコードと連続していないので、4番目のレコードを選択することができます。
私はすべてのrank()、row_number、self joinの組み合わせを試しましたが、動作しませんでした。誰でも助けてくれますか?
私は同様の質問は[こちら](http://stackoverflow.com/questions/42142981/how-to-groupに答え'LAG'と' ROW_NUMBER() 'を使用して、このようなデータのような取り出しが可能な特定の行からなるグループ/ 42145336#42145336)を作成します。私はTIMESTAMPを 'DATETIME'として保存することをお勧めします。なぜなら、日々のデータを並べ替えることは頭痛を引き起こすからです。時間が11時50分、00時01分だったら? – scsimon