gpt4 book ai didi

postgresql - 从 SQL 结果中删除日期较低的重复项

转载 作者:行者123 更新时间:2023-11-29 13:26:13 24 4
gpt4 key购买 nike

我有下表:

CREATE TABLE Kundendaten (
beschreiben_knr INTEGER REFERENCES Kunde(knr) DEFERRABLE INITIALLY DEFERRED,
erstelldatum DATE,
anschrift VARCHAR(40),
sonderrabat INTEGER,
PRIMARY KEY (erstelldatum, beschreiben_knr)
);

如果我进行此查询:

select * from Kundendaten ORDER BY erstelldatum DESC;

我得到:

 beschreiben_knr | erstelldatum |   anschrift   | sonderrabat 
-----------------+--------------+---------------+-------------
1 | 2015-11-01 | Winkelgasse 5 | 0
2 | 2015-11-01 | Badeteich 7 | 10
3 | 2015-11-01 | Senfgasse 7 | 15
1 | 2015-10-30 | Sonnenweg 3 | 5

但如果有多个日期条目,我只需要获取最高日期条目的条目。在这种情况下,最后一行不应出现。

我如何在 postgresql 中实现这一点?

最佳答案

你想要像 WHERE erstelldatum = MAX(DATE) 这样的东西,但这不起作用。您可以使用子查询来获取最新日期。

SELECT *
FROM Kundendaten
WHERE erstelldatum = (
SELECT MAX(erstelldatum) FROM Kundendaten
);

(SQL Fiddle)

Postgres 将优化该子查询,因此它只运行一次,但您需要确保 erstelldatum 已编入索引。

关于postgresql - 从 SQL 结果中删除日期较低的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33466801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com