gpt4 book ai didi

mysql - 带有聚合函数的子查询 SQL

转载 作者:行者123 更新时间:2023-11-29 17:47:18 24 4
gpt4 key购买 nike

目标是更新 Inventory 表的 object_category 列,以查找表中项目数量最少的对象 (count(name))

我知道当对 IN 子句使用子查询时,子查询必须返回单个列或值。但是,我不确定如何在保持语法正确的同时实现我的目标。

这是我到目前为止的代码,子查询本身会生成正确的两个要更新的对象,只是当我将其放入 IN 子句时不会生成

UPDATE Inventory
SET object_category = 'ABC'
WHERE Inventory.object_category in (
select count(name) as nameCount , object_category
from Inventory
group by object_category
having nameCount <= min(nameCount));

最佳答案

在 MySQL 中,您需要使用 join 来表达此逻辑。如果您只想更新一个类别,那么这就足够了

UPDATE Inventory i JOIN
(SELECT count(name) as nameCount, object_category
FROM Inventory
GROUP BY object_category
ORDER BY nameCount
LIMIT 1
) ii
ON ii.object_category = i.object_category
SET i.object_category = 'ABC';

您的子查询没有意义并且不起作用。

关于mysql - 带有聚合函数的子查询 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49703149/

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