SQL Serverでサブクエリとウィンドウ関数のパフォーマンスを比較した.用いたデータベースはHeatStrokeDBで,熱中症の搬送人員と最高気温との相関関係を可視化し閾値をχ二乗検定するで作成したものである.
比較するツールはSET STATISTCS PROFILE ONコマンドである.クエリストアは筆者の環境では機能しなかった.
Co-evolution of human and technology
SQL Serverでサブクエリとウィンドウ関数のパフォーマンスを比較した.用いたデータベースはHeatStrokeDBで,熱中症の搬送人員と最高気温との相関関係を可視化し閾値をχ二乗検定するで作成したものである.
比較するツールはSET STATISTCS PROFILE ONコマンドである.クエリストアは筆者の環境では機能しなかった.
SQL Serverのクエリのコストを評価するには実行計画を取得する必要がある.最近のバージョンではクエリストアでクエリのコストを視覚化することが可能となった.今回はSQL Serverの実行計画を取得する従来の方法と,クエリストアを表示する方法を紹介する.元にした記事は日平均気温の過去30日間の移動平均をSQL Serverのウィンドウ関数を用いて計算するである.
二乗平均平方根誤差とは英語では Root Mean Squared Error (RMSE) と書く.真値と予測値との乖離(誤差)を二乗し,その平均値をとり,その平方根を求めた値のことである.非負の値を取り,0に近いほど優れたモデルであることを示唆する.
今回使用するのはe-Statからの社会疫学的指標を加えて熱中症搬送人員数を分析するで使用したデータベースである.先の記事では回帰モデルを評価する指標が必要との認識であった.
都道府県別の熱中症搬送人員数の予測と実際をEXCELの組み合わせグラフで描くでは独立変数として日最高気温,日平均水蒸気圧,65歳以上人口,人口密度を投入し都道府県別の熱中症搬送人員数を予測した.以前の記事ではe-Statからの社会疫学的指標を加えて熱中症搬送人員数を分析した.社会疫学的指標としては日最高気温,日平均水蒸気圧,都道府県人口に加えて過去30日間の平均気温,エアコン保有台数,年間収入のジニ係数,光熱・水道費,実収入,第1次産業就業者比率,第2次産業就業者比率,都市公園数,都市緑化割合,自然公園割合,自然公園数,生活保護被保護人員である.
今回は社会疫学的指標を独立変数として加えた熱中症搬送人員数の予測と実際を示す.
総務省の公開しているe-Statには社会疫学的指標が多く含まれる.今回熱中症搬送人員数に様々な指標を加えて解析してみた.
説明変数として日最高気温,日平均水蒸気圧,都道府県人口に加えて過去30日間の平均気温,エアコン保有台数,年間収入のジニ係数,光熱・水道費,実収入,第1次産業就業者比率,第2次産業就業者比率,都市公園数,都市緑化割合,自然公園割合,自然公園数,生活保護被保護人員を加えた.
すべての変数が有意であったが,VIFを見ると多重共線性を疑わせる変数もあり,良いモデルとは言えない結果となった.
熱中症の搬送人員数が月平均気温と負の相関があるとの情報を得た.普段涼しい地域ほど日最高気温の上昇に弱いという意味である.普段涼しいということを表現するには過去30日間の日平均気温の平均を取ればよいだろうと判断した.こうなるとSQL Serverのウィンドウ関数の出番である.
SQL Server でウィンドウ関数を使い,1行前の行を取得するではウィンドウ関数を用いて1行前の行を取得した.今回は RANK 関数,NTILE 関数を用いて順位,四分位を得る.
SQL Server でウィンドウ関数を使い,1行前の行を取得するではウィンドウ関数を用いて1行前の行を取得した.今回は LAG 関数を用いて1行前の行を取得する.
ウィンドウ関数は比較的新しい技術である.筆者は正直,SQL が苦手だ.IPA の試験が終わったのでデータベース関連の勉強を再開している.