SQL MIN()作为子查询 - “不允许组函数”

时间:2013-01-29 17:40:21

标签: sql database

我正在尝试选择与另一列中的最小数字相对应的值,然后将其用于另一个表中的SET。

但它告诉我“这里不允许组功能”

有没有其他方法可以实现这一目标?

UPDATE team 
SET OWNERID = (SELECT USERID
         FROM teamuser
         WHERE MIN(CREATETIME) 
         AND teamId = 5) 
WHERE teamId = 5

(团队和teamuser表都有一个列teamId)。

2 个答案:

答案 0 :(得分:2)

你应该做

UPDATE team 
SET OWNERID = (SELECT USERID
         FROM TEAMUSER 
         WHERE CREATETIME = (select min(CREATETIME) from TEAMUSER)
         AND teamId = 5
)
WHERE teamId = 5

您不能在where子句中使用聚合函数,只能在选择时使用它,或者在分组后的Having子句中使用

答案 1 :(得分:2)

UPDATE team 
SET OWNERID = (SELECT USERID
         FROM TEAMUSER 
         WHERE CREATETIME = (SELECT MIN(CREATETIME) FROM TEAMUSER WHERE teamId = 5)
         AND teamId = 5) 
WHERE teamId = 5