お世話になります。
SQL Server にて以下のような集計を行いたいと考えております。
しかしあまりSQLに詳しくなく、実装方法が思いつかず手が止まってしまったため投稿させていただきました。
行いたいこと
ある keyword に紐づいた値の変更履歴を保存しているテーブルがあったとき、
keyword ごとに初期値と最新の値を取得し一行に結果をまとめて出力する。
集計元となる変更履歴テーブル
keyword | old_value | new_value | change_at |
---|---|---|---|
'key1' | 'aaaa' | 'bbbb' | 2019-01-01 00:00:00.0000000 |
'key1' | 'bbbb' | 'cccc' | 2019-01-01 00:01:00.0000000 |
'key1' | 'cccc' | 'dddd' | 2019-01-01 00:02:00.0000000 |
'key2' | 'wwww' | 'xxxx' | 2019-01-01 00:03:00.0000000 |
'key2' | 'xxxx' | 'yyyy' | 2019-01-01 00:04:00.0000000 |
'key2' | 'yyyy' | 'zzzz' | 2019-01-01 00:05:00.0000000 |
SQL
1CREATE TABLE change_history( 2 keyword nvarchar(64) NOT NULL, 3 old_value nvarchar(64), 4 new_value nvarchar(64), 5 change_at datetime2(7) NOT NULL 6) 7 8insert into change_history(keyword,old_value,new_value,change_at) 9values('key1','aaaa','bbbb','2019/01/01 00:00:00') 10,('key1','bbbb','cccc','2019/01/01 00:01:00') 11,('key1','cccc','dddd','2019/01/01 00:02:00') 12,('key2','wwww','xxxx','2019/01/01 00:03:00') 13,('key2','xxxx','yyyy','2019/01/01 00:04:00') 14,('key2','yyyy','zzzz','2019/01/01 00:05:00')
集計結果として取得したいデータ
keyword | old_value | new_value |
---|---|---|
'key1' | 'aaaa' | 'dddd' |
'key2' | 'wwww' | 'zzzz' |
環境
SQL Server 2016
以上、よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/07 04:15
2019/02/07 04:28
2019/02/07 11:17