Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >是否可以使用HAVING子句执行delete?

是否可以使用HAVING子句执行delete?
EN

Stack Overflow用户
提问于 2012-07-29 01:44:51
回答 5查看 63.1K关注 0票数 40

我想做一些如下的事情:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DELETE UserPredictions
  GROUP BY UserId
  HAVING COUNT(*) < 500

但是我得到了一个语法错误。是否可以在SQL Server中使用HAVING子句执行delete操作,或者我是否必须将计数汇总到CTE中并使用join执行delete操作?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-07-29 01:52:29

不怎么有意思。having子句意味着聚合,这意味着您不再拥有原始行。

我认为你需要以下几点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DELETE from UserPredictions
where UserId in (select UserId from UserPredictions group by UserId having count(*) < 500)
票数 53
EN

Stack Overflow用户

发布于 2012-07-29 02:57:33

可以在DELETE语句中使用联接的subselect:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DELETE a
FROM   UserPredictions a
JOIN
(
    SELECT   UserId
    FROM     UserPredictions
    GROUP BY UserId
    HAVING   COUNT(1) < 500
) b ON a.UserId = b.UserId

SQLFiddle Demo

票数 26
EN

Stack Overflow用户

发布于 2012-07-29 01:53:17

尝试此嵌套查询:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DELETE FROM UserPredictions  
WHERE UserId IN (SELECT UserId
                 FROM UserPredictions 
                 GROUP BY UserId
                 HAVING COUNT(*) < 500)
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11705996

复制
相关文章
MySQL | Having子句的使用
数据操作语言:HAVING 子句 分组查询遇到的困难? 查询部门平均底薪超过2000元的部门编号 错误示范 SELECT deptno FROM t_emp WHERE AVG(sal) >=2000 -- 错在这里出现了聚合函数 GROUP BY deptno; 引入 HAVING 子句 SELECT deptno FROM t_emp GROUP BY deptno HAVING AVG(sal)>=2000; HAVING 子句的用途 查询每个部门中,1982 年以后入职的员工超过 2 个人的部门编
Zkeq
2022/05/18
9100
MySQL HAVING 子句
上一章阿常给大家讲了MySQL 分组函数,今天我们讲 MySQL HAVING 子句。
程序媛淼淼
2022/09/01
7230
MySQL HAVING 子句
SQLite Having 子句
WHERE 子句在所选列上设置条件,而 HAVING 子句则在由 GROUP BY 子句创建的分组上设置条件。
子润先生
2021/07/01
4730
[译]PostgreSQL HAVING子句
了解GROUP BY和HAVING子句的工作原理可以帮助写出更加高效的SQL。这里用一个真实例子来说明这一点。
yzsDBA
2022/09/06
9110
SQL进阶-11-having子句
HAVING子句是SQL中非常重要的功能,本文将再次介绍该子句的使用。作者指出:SQL语句处理的对象是集合而不是记录,我们要有面向集合的思考方式。
皮大大
2021/03/01
7020
SQL中,having子句和where子句的区别
在SQL之中,where和having的功能有点像,导致我一直搞不清楚这两者的区别。因此今天专门研究了以下,在此记录。
灯珑LoGin
2022/10/31
2.6K0
ClickHouse中的HAVING、ORDER BY和LIMIT BY子句的使用
在ClickHouse中,HAVING子句用于对查询结果进行条件过滤。它用于在GROUP BY子句之后对聚合结果进行筛选。
一凡sir
2023/10/21
1.2K0
ClickHouse中的HAVING、ORDER BY和LIMIT BY子句的使用
大数据ClickHouse进阶(十四):ClickHouse的HAVING和ORDER BY子句
ClickHouse也支持Having子句,需要与group by 同时出现,不能单独使用,它能够在聚合计算之后实现二次过滤数据。操作如下:
Lansonli
2022/10/15
1K0
大数据ClickHouse进阶(十四):ClickHouse的HAVING和ORDER BY子句
group by和order by having where 执行顺序[order by升序]
查询语句中select from where group by having order by的执行顺序
Java架构师必看
2022/03/30
9290
group by和order by having where 执行顺序[order by升序]
三十、是否可以使用 count(*)
一、是否可以使用 count(*) 在 SQL 中,COUNT() 函数返回匹配指定条件的函数。 序号COUNT用法作用描述1COUNT(*)返回总记录数,包含 NULL 值2COUNT(1)与COUNT(*)的作用一样3COUNT(column_name)返回指定列的数目,NULL值不统计4COUNT(DISTINCT column_name)返回指定列不同值的数目,NULL值不统计 Tip: COUNT(*) 与 COUNT(column_name) 的作用不一样,如果列值包含 NULL ,统计结果就
喵叔
2022/05/06
4720
SQL里是否可以使用JOIN
很多公司都禁止程序员在 SQL 中使用 JOIN,至于原因则出奇的一致:用 JOIN 慢。不过我从没见过谁来论证为什么用 JOIN 慢,结果这个人云亦云的结论越传越广,让我觉得是时候来讨论一下这个看似正确的结论了。
LA0WAN9
2021/12/14
5640
SQL里是否可以使用JOIN
ClickHouse中,WHERE、PREWHERE子句和SELECT子句的使用
在ClickHouse中,WHERE和PREWHERE子句都用于筛选数据,但它们在查询中的使用有一些区别和注意事项。
一凡sir
2023/10/20
1.8K0
ClickHouse中,WHERE、PREWHERE子句和SELECT子句的使用
十、GROUP BY 和 HAVING 的使用
这时我们就可以使用 group by 语句来解决这类需求。从字面上来理解,group by 表示根据某种规则对数据进行分组,他必须配合聚合函数进行使用,对数据进行分组后可以进行 count、sum、avg、max 和 min 运算。语法如下:
喵叔
2021/06/25
1.1K0
ClickHouse中ARRAY JOIN子句和JOIN子句的使用
在ClickHouse中,ARRAY JOIN子句用于查询和展开数组数据。它可以将一个数组字段展开为多个行,以便在查询结果中分别处理每个数组元素。
一凡sir
2023/10/20
1.7K0
ClickHouse中ARRAY JOIN子句和JOIN子句的使用
二十九、是否可以使用 count(*)
一、是否可以使用 count(*) 在 SQL 中,COUNT() 函数返回匹配指定条件的函数。 序号 COUNT用法 作用描述 1 COUNT(*) 返回总记录数,包含 NULL 值 2 COUNT(1) 与COUNT(*)的作用一样 3 COUNT(column_name) 返回指定列的数目,NULL值不统计 4 COUNT(DISTINCT column_name) 返回指定列不同值的数目,NULL值不统计 Tip: COUNT(*) 与 COUNT(column_name) 的作用不一样,如
喵叔
2021/06/25
4470
DELETE选错执行计划的困境
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
bisal
2019/10/22
5370
DELETE选错执行计划的困境
proc 编程执行 insert、delete、update语句
主题中提到的三种语句都是没有返回值的,所以我们实现起来也最简单,下面代码中包含了 insert、update 和 delete 三种语法的使用。值得注意的是在 insert 和 update 的时候使用宿主变量时的语法,在宿主变量前一定要加冒号,这是初学者最容易犯的错误。
我与梦想有个约会
2023/10/20
3550
proc 编程执行 insert、delete、update语句
Python中带else子句的for循环执行过程
这几天在厦门讲课,每天6小时,没有太多时间写新代码,宾馆不知道咋想的也不提供WiFi,只好用手机做个热点临时分享一点基础知识,300M的包月流量伤不起,热点瞬间就把仅剩的40M流量用完了,赶紧发完关闭热点。 在Python中,有while和for两种循环,并且都可以带有else子句。其中while循环常用于无法提前确定循环次数的场合,当然也可以用于循环可以提前确定的场合;for循环常用于可以提前确定循环次数的场合,尤其适合用来迭代或遍历可迭代对象中的元素,这也是for循环的本质。 对于带有else子句的循环
Python小屋屋主
2018/04/16
1.6K0
Python中带else子句的for循环执行过程
当执行 DELETE 时,你心慌了
老实讲,俺也一样。不仅仅是执行 DELETE 心里会咯噔下,多几次确认,哪怕是 INSERT,UPDATE, 甚至是 SELECT, 只要是在生产环境做的操作,都难免心里会有些紧张。
Lenis
2021/10/11
3260
Oracle数据库增删改查
由于之前安装的oracle数据库中选择了生成示例方案,oracle默认提供了三张数据表,分别是(emp,dept,salgrade)
全栈程序员站长
2022/06/25
1.6K0
Oracle数据库增删改查

相似问题

我是否可以在teradata中使用delete子句?

15

是否可以对GROUP BY中未列出的列使用HAVING子句?

10

Mysql --我可以在“order”子句之后使用“having”子句吗?

11

TSQL Having子句未按预期执行with condition

121

在HAVING子句之后可以有WHERE子句吗?

530
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文