ビッグデータシステムなど、大量のデータを解析する場合、JAVAやC#では計算元のデータを読込むだけで膨大な時間がかかってしまうので、最近では数十テラのデータであってもDBにインポートしてから、SQLで分析するのが主流になっています。以下は、新しいデータが1つ前のデータに対して、どれだけ値が上昇したのか、その角度を求めるSQLServerのT-SQLです。データが増える度にリアルタイムでこのSQLを実行すると、角度から、データの急激な動きを視覚的に把握できるようになります。
DECLARE @StartDate DATETIME = '2015-08-29 06:45:00.000';
DECLARE @現在の値 FLOAT = 0;
DECLARE @1つ前の値 FLOAT = 0;
DECLARE cursor_DataHistory CURSOR FOR
SELECT TOP 2 [値]
FROM [DataHistory]
WHERE [StartDate] <= @StartDate
ORDER BY [StartDate] DESC;
open cursor_DataHistory;
FETCH NEXT FROM cursor_DataHistory INTO @現在の値;
FETCH NEXT FROM cursor_DataHistory INTO @1つ前の値;
CLOSE cursor_DataHistory;
DEALLOCATE cursor_DataHistory;
SELECT (ATAN((@現在の値 - @1つ前の値) / 1) * 180 / PI()) AS 上昇角度;
最近のコメント