gpt4 book ai didi

mysql - 需要按值对记录进行 GROUP 和 COUNT,然后 qty > X 被 DELETED 到某个 qty

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

我想做的是ORDER BY两个字段,usridctoon_idCOUNT数字每个 usridctoon_id,然后从指定 usrid 中删除 X 条记录,只要 ctoon_id计数大于50。

我确信会有嵌套查询,但我没有足够的 SQL 经验来使其正​​常工作。有人可以帮忙吗?

最佳答案

要删除 ctoon_id 计数大于 50 的所有记录,您可以尝试此查询吗?

先选择,确认

首先,运行 SELECT,以确保您删除的是正确的记录,并且数据库中的语法正确:

SELECT DISTINCT userid, ctoon_id
FROM (
SELECT
@row_number := CASE
WHEN @userid = usrid AND @ctoon_id = ctoon_id THEN @row_number + 1
ELSE 1
END AS rnum,
@userid:=usrid AS usrid,
@ctoon_id:=ctoon_id AS ctoon_id
FROM yourtable
ORDER BY usrid, ctoon_id
) sub
WHERE rnum > 50;

此查询将:

  1. 运行子查询以查找 usrid 和 ctoon_id 值并为其分配行号
  2. 选择包含超过 50 条记录的 DISTINCT 值。

您可以先单独运行子查询来查看受影响的记录。

删除记录

要删除记录,请将此 SELECT 包含在 DELETE 查询中。

DELETE FROM yourtable
WHERE (usrid, ctoon_id) IN (
SELECT DISTINCT userid, ctoon_id
FROM (
SELECT
@row_number := CASE
WHEN @userid = usrid AND @ctoon_id = ctoon_id THEN @row_number + 1
ELSE 1
END AS rnum,
@userid:=usrid AS usrid,
@ctoon_id:=ctoon_id AS ctoon_id
FROM yourtable
ORDER BY usrid, ctoon_id
) sub
WHERE rnum > 50
);

希望现在一切顺利。

关于mysql - 需要按值对记录进行 GROUP 和 COUNT,然后 qty > X 被 DELETED 到某个 qty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41836436/

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