gpt4 book ai didi

python - 如何删除表中除前 5 条记录之外的所有记录

转载 作者:行者123 更新时间:2023-11-28 21:34:11 25 4
gpt4 key购买 nike

我正在用Python编写一个简单的问答游戏,我需要在游戏结束时打印出前5名的分数。我正在使用 sqlite。我有一个最高分的表格,并且已经计算出如何获得最高分,但因为我只需要前 5 个分数,所以我想删除分数低于前 5 个的所有记录。这可以通过 SQL 实现吗语句还是我需要用 python 编写它。

谢谢

最佳答案

这里有一个选项:

DELETE
FROM yourTable
WHERE score NOT IN (SELECT DISTINCT score
FROM yourTable
ORDER BY score DESC LIMIT 5);

这个答案对于前 5 名中的平局来说是稳健的,但可能会返回超过 5 条记录,所有这些记录的分数总体都在前 5 名中。

如果 ROW_NUMBER 可用,我们可以尝试以下操作:

WITH cte AS (
SELECT id, score, ROW_NUMBER() OVER (ORDER BY score DESC) rn
FROM yourTable
)

DELETE
FROM yourTable
WHERE id IN (SELECT id FROM cte WHERE rn <= 5);

再次,存在如何处理关系的问题。您实际上可能想使用 DENSE_RANK 而不是 ROW_NUMBER

关于python - 如何删除表中除前 5 条记录之外的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53741147/

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