以下に示すような構造のデータベーステーブルがあります。
CREATE TABLE dated_records (
recdate DATE NOT NULL
col1 DOUBLE NOT NULL,
col2 DOUBLE NOT NULL,
col3 DOUBLE NOT NULL,
col4 DOUBLE NOT NULL,
col5 DOUBLE NOT NULL,
col6 DOUBLE NOT NULL,
col7 DOUBLE NOT NULL,
col8 DOUBLE NOT NULL
);
指定された列(col1、col2、col3など)について、指定された2つの日付間の変更を含むレコードを返すことができるSQLステートメントを記述したいと思います。
たとえば、col1、col2、およびcol3の値が2つの日付の間にどの程度変化したかを確認したい場合です。これを行うためのばかげた方法は、各日付の行を(別々に)選択してから、データベースサーバーの外部のフィールドを区別することです-
SQL1 = "SELECT col1, col2 col3 FROM dated_records WHERE recdate='2001-01-01'";
SQL1 = "SELECT col1, col2 col3 FROM dated_records WHERE recdate='2001-02-01'";
ただし、純粋なSQLを使用して差分を実行するよりスマートな方法があると確信しています。自己結合(および場合によってはネストされたサブクエリ)の使用が含まれると推測していますが、複雑すぎる可能性があります-ここでSQLの専門家に、この問題をどのように解決するかを尋ねたほうがよいと判断しました。最も効率的な方法。
理想的には、SQLはDBに依存しない必要がありますが、特定のデータベースに関連付ける必要がある場合は、PostgreSQLである必要があります。