以下のデータセットがあります。これから、PersonIDのステータスが以前のステータスとは異なるステータスに変更された各グループから、最初の行を選択したいとします。LAG機能を使用せずにこのデータをグループ化するには
たとえば、このデータセットからは、1,4,7、および11の行が必要です。 これに関する助言はありますか。 私がGROUPBYを実行すると、それはすべての新規グループとすべての2つのグループの保留グループをまとめているだけです。私はSQL Server 2008しか持っていないので、ラグ機能は動作しません。
PersonID Status WhenChanged
101 New 27/01/2017 15:27
101 New 27/01/2017 16:40
101 New 27/01/2017 16:40
101 Pending 27/01/2017 16:40
101 Pending 27/01/2017 16:40
101 Pending 27/01/2017 16:40
101 New 31/01/2017 09:14
101 New 31/01/2017 10:02
101 New 31/01/2017 10:03
101 New 31/01/2017 10:05
101 Pending 03/02/2017 14:29
101 Pending 03/02/2017 14:29
あなたの 'WhenChanged'は真剣に' VARCHAR'値ですか? – Siyual
あなたの構造では、これは不可能です。あなたのdatetime値( 'VARCHAR'のような疑わしいもの)は一意ではありません。ソートするものは何もありません。これらの結果を注文するものがなければ、結果の保証された順序はありません。したがって、あなたが望む結果を得ることが不可能になります。レコードの一意のIDが必要です。 – Siyual