gpt4 book ai didi

mysql - 删除所有值比顶部字段低 5 倍的字段

转载 作者:太空宇宙 更新时间:2023-11-03 10:36:40 25 4
gpt4 key购买 nike

我有一个包含两个字段的表 (prices),code (char) 和 price (decimal)。我需要找到所有具有相同代码且价格比最高价格低 5 倍的字段。例如,在这种情况下:

id   code   price
1 1001 10
2 1001 101
3 1001 40
4 1002 10
5 1002 122
6 1002 50

我需要删除 ID 为 1 和 4 的字段。我正在尝试 smth。像这样:

DELETE FROM `prices` WHERE `code` IN (SELECT `code` FROM `prices` sa WHERE `code` IN (SELECT `code` FROM `prices` WHERE `price`>sa.`price`*5) and sa.code=prices.code);  

但我不确定这是正确的方法。下一个任务是删除所有字段,比前两个字段低 3 倍。所以,如果我们至少有两个字段大于 100,我们需要删除所有小于 25 的字段。

最佳答案

您将使用join 和聚合:

delete p
from prices p join
(select p.code, max(price) as max_price
from prices p
group by p.code
) pp
on pp.code = p.code and pp.price < p.price * 0.2;

关于mysql - 删除所有值比顶部字段低 5 倍的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47103515/

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