gpt4 book ai didi

sql - DELETE 查询以销毁记录组中除最近记录外的所有记录和每个月的第一条记录

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

我想创建一个 SQL DELETE 查询,在一条语句中删除除以下内容之外的所有内容:

  • 最近的记录
  • 以及之前每个月除第一个记录外的所有记录

在一组记录中。我在这里做了一个 SQL fiddle 示例:http://www.sqlfiddle.com/#!15/2272a

删除的结果应该是,从组 og 记录(具有 other_table_id = 1 的记录)中,唯一剩下的应该是:

('2017-01-02', 1), 
('2017-03-24', 1),
('2017-04-03', 1),
('2017-05-24', 1),
('2017-12-14', 1)

这完全可以在一个查询中完成,还是我需要在多个查询中完成?

最佳答案

试试这个:

DELETE FROM example_table
WHERE ID NOT IN(
SELECT ID FROM(
select id
,ROW_NUMBER() OVER(PARTITION BY date_part('year',created_at),date_part('month',created_at) ORDER BY ID)Rn
from example_table WHERE other_table_id =1
)D
WHERE RN=1);

SELECT * FROM example_table;

# SQL Fiddle

关于sql - DELETE 查询以销毁记录组中除最近记录外的所有记录和每个月的第一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49855860/

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