子选择 T-SQL 中的聚合函数
Posted
技术标签:
【中文标题】子选择 T-SQL 中的聚合函数【英文标题】:Aggregate functions in subselect T-SQL 【发布时间】:2020-08-22 11:51:28 【问题描述】:我刚开始使用 T-SQL 并尝试编写更新代码,但我的子选择中需要一个聚合函数,而我似乎没有。
这是我目前拥有的
Update Roysched
Set Royalty = (Royalty - 2)
Where title_id in (select title_id from sales where SUM(qty) > 30)
但我收到关于子选择中的聚合的错误
解决方法是什么?
【问题讨论】:
您需要使用 sum(qty) > 30 而不是 where。 【参考方案1】:您不能在 where
子句中使用聚合术语 - 这就是 having
子句的用途。请注意,您还缺少 group by
子句:
UPDATE roysched
SET royalty = (royalty - 2)
WHERE title_id IN (SELECT title_id
FROM sales
GROUP BY title_id
HAVING SUM(qty) > 30)
【讨论】:
以上是关于子选择 T-SQL 中的聚合函数的主要内容,如果未能解决你的问题,请参考以下文章