02:15フォローするはじめにSQLを他のプログラミング言語と同じよう手続き型の言語だと認識していると,色々とつまずくところがあります。以下のトピックは手続き型では当たり前にできていた事が,SQLでは苦手だったりするものです。ここでいう「SQL」には,2つの観点がある事に注意してください。後者の方は「列指向データベース」および「分散SQLクエリ」によるものと言い換える事ができます。While文のような「ループ」処理を記述できない事が挙げられます。言語の記述制約による問題です。多くのケースではループができないことは何の問題もありませんが,ループが記述できないこと,そして後述の行列計算ができないことは「方程式の解をとく(ための最適化アルゴリズム)」事ができないことを意味します。方程式の解をとけないことは,主成分分析などの統計モデルや機械学習を行うことを困難にします。いう処理に変換されて実行されます。記述されており,もちろんループ処理も実行できます。Function)」という,Java等で実装した関数を登録することができます(トレジャーデータではユーザー側には公開していません)ので,そちらを利用する事が考えられますが,一般ユーザーにとってはやはり現実的ではありません。記述であらゆる統計モデル,機械学習の困難さを打開しています。簡単に記述できません。SQLでは行数はいくらでも多くなっても構いませんが,列数が多くなってしまうことを嫌います。列名に変数を使うことができません。仮に100個の列があったとしたら,一つ一つカラム名をSQLで明示的に記述していかないといけません。これは非常に大変な事です。統計モデルや機械学習の本を読んでいるとよく行列式が出てきますが,これをそのままSQLで書き起こすことは容易ではありません。してJavaで記述することは可能ですが,こちらも現実的な解決策ではありません。ピボットテーブルを作成するという処理をさせることは困難です。ピボットテーブルもまた,列の数が基本的に未知で長くなってしまう可能性を含むために,この処理は困難とされます。行う事を推奨しています。関数を使いこなす(集約関数系)列指向データベースと行指向データベースTD_SESSIONIZEからTD_SESSIONIZE_WINDOWへの移行コメント0件のコメントログインしてコメントを残してください。