我有一个数据库表,其结构如下所示:
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
);
我想编写一个 SQL 语句,允许我返回一条记录,其中包含两个提供的日期之间的更改,对于指定的列 - 例如 col1、col2 和 col3
例如,如果我想查看 col1、col2 和 col3 中的值在两个日期之间的时间间隔内发生了多少变化。这样做的一种愚蠢方法是(分别)为每个日期选择行,然后区分数据库服务器之外的字段 -
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 应该与数据库无关,但如果需要将其绑定到特定数据库,那么它必须是 PostgreSQL。