ホームページ >データベース >mysql チュートリアル >MySQL データベースを時系列分析に使用するにはどうすればよいですか?
MySQL データベースを時系列分析に使用するにはどうすればよいですか?
時系列データとは、時間的な連続性と相関性を持つ、時系列に並べられたデータの集合のことです。時系列分析は、将来の傾向の予測、周期的な変化の発見、外れ値の検出などに使用できる重要なデータ分析手法です。この記事では、MySQL データベースを使用して時系列分析を行う方法とコード例を紹介します。
まず、時系列データを保存するデータ テーブルを作成する必要があります。分析するデータが毎日の売上であると仮定すると、日付、売上、売上数量の 3 つのフィールドを含む「売上」という名前のデータ テーブルを作成できます。
CREATE TABLE sales ( date DATE, revenue DECIMAL(10,2), quantity INT );
次に、時系列分析のためにサンプル データをデータ テーブルに挿入する必要があります。次のサンプル データがあるとします。
Date Sales Sales Volume
2019-01-01 100.00 10
2019-01-02 150.00 15
2019-01-03 200.00 20
...
次のコードを使用して、データ テーブルにデータを挿入できます:
INSERT INTO sales (date, revenue, quantity) VALUES ('2019-01-01', 100.00, 10), ('2019-01-02', 150.00, 15), ('2019-01-03', 200.00, 20);
取得できたら、サンプル データを挿入すると、SQL クエリを使用して時系列データを抽出して分析できます。一般的に使用されるクエリの例を次に示します。
SELECT date, revenue FROM sales WHERE date BETWEEN '2019-01-01' AND '2019-01-31';
SELECT date, AVG(revenue) FROM sales GROUP BY date;
SELECT date, revenue FROM sales ORDER BY revenue DESC LIMIT 1;
SELECT DATE_FORMAT(date, '%Y-%m') AS month, SUM(revenue) FROM sales GROUP BY month;
通常の SQL クエリに加えて、MySQL には、より高度な時系列分析のためのいくつかの組み込み関数も用意されています。一般的に使用される関数の例をいくつか示します。
SELECT date, revenue, AVG(revenue) OVER (ORDER BY date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) FROM sales;
SELECT date, revenue, (revenue - LAG(revenue) OVER (ORDER BY date)) / LAG(revenue) OVER (ORDER BY date) AS growth_rate FROM sales;
SELECT date, revenue, IF(ABS(revenue - AVG(revenue) OVER ()) > 3 * STDDEV(revenue) OVER (), 'Anomaly', 'Normal') AS status FROM sales;
これらの関数を使用すると、より便利に時系列分析を行うことができます。
概要
この記事では、時系列分析に MySQL データベースを使用する方法の基本的な手順を紹介し、いくつかの SQL クエリの例と組み込み関数の例を示します。これらのテクニックに習熟すると、時系列データをより深く理解して活用し、隠れたパターンや傾向を明らかにできるようになります。
以上がMySQL データベースを時系列分析に使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。