如果我有一个具有以下架构的表:
CREATE TABLE diet_watch (
entry_date date NOT NULL,
weight double precision NOT NULL
);
INSERT INTO diet_watch VALUES ('2001-01-01', 128.2);
INSERT INTO diet_watch VALUES ('2001-01-02', 121.0);
INSERT INTO diet_watch VALUES ('2001-01-03', 122.3);
INSERT INTO diet_watch VALUES ('2001-01-04', 303.7);
INSERT INTO diet_watch VALUES ('2001-01-05', 121.0);
INSERT INTO diet_watch VALUES ('2001-01-06', 128.0);
我将如何编写一个查询来返回两个日期之间的第一个最小重量和最小重量发生的日期?
理想情况下,这将是 ANSI-SQL,即 db 不可知论。如果我不得不被迫选择一种 SQL 风格,那将是 PostgreSQL,因为那是我正在使用的数据库。
伪 SQL:
SELECT min(entry_date), min(weight)
FROM diet_watch
where entry date between date1 and date2
group by entry_date;