gpt4 book ai didi

mysql - SQL 删除除每个唯一值的最后 N 行之外的所有行

转载 作者:可可西里 更新时间:2023-11-01 07:38:03 25 4
gpt4 key购买 nike

这是一个艰难的,对于不同字段中的每个唯一值,我将如何删除除最后一行(比如 3 行)以外的所有内容?

这是问题的视觉图:

id | otherfield
---------------
1 | apple <- DELETE
2 | banana <- KEEP
3 | apple <- DELETE
4 | apple <- KEEP
5 | carrot <- KEEP
6 | apple <- KEEP
7 | apple <- KEEP
8 | banana <- KEEP

我如何在 SQL 中完成此操作?

最佳答案

未经测试,但按照这些思路可能会起作用:

DELETE t.*
FROM table t JOIN (
SELECT id
@rowNum := IF(@otherfield <> otherfield, 1, @rowNum + 1) rn,
@otherfield := otherfield otherfield
FROM (
SELECT id, otherfield
FROM table
ORDER BY otherfield, id DESC
) t, (SELECT @otherfield := NULL, @rowNum := -1) dm
) rs ON t.id = rs.id
WHERE rs.rn > 3

关于mysql - SQL 删除除每个唯一值的最后 N 行之外的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4953409/

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