SQL Having用法

拿个业务场景说这个案例,比如我们有个表里面可能有批改过的数据,批改过得数据不会随着新批改的数据覆盖,而是逐条插入表中,如果想找出包含最早批改的数据和最新批改数据的话,那么我们就需要用到了havinng 用法,假设最开始的批单号是000,批单号是累加的

比如我们有个表 table 表里面有两个字段 订单号(order_no) 和 批单号(endorseq_no)

那么写法就是

sql 复制代码
select order_no
from table
group by order_no
having sum(case when endorseq_no = '000' then 1 
                else 0 end) >= 1  --这个是判断必须包含最初的批单
  and count(*) >= 2    --这个是判断除了最初的批单之外还需要有新批改的批单
相关推荐
xiaohe075 分钟前
C#数据库操作系列---SqlSugar完结篇
网络·数据库·c#
冬奇Lab9 分钟前
RAG 系列(六):向量数据库——存储与检索的基础设施
数据库·人工智能·llm
vooy pktc9 分钟前
macOS安装Redis
数据库·redis·macos
辞旧 lekkk13 分钟前
【Qt】初识(上)
开发语言·数据库·qt·学习·萌新
编程之升级打怪27 分钟前
MySQL数据库SQL语句简单用法
sql·mysql
落落121327 分钟前
MySQL事务四大特性(ACID)
数据库
阿维的博客日记33 分钟前
Redis的旁路缓存策略和先删除缓存后更新数据库,先更新数据库后删除缓存,这三种策略之间有什么关系??
数据库·redis·缓存
ictI CABL1 小时前
redis连接服务
数据库·redis·bootstrap
苍煜1 小时前
SpringBoot单体应用到分布式下的数据库锁、事务、Redis事务、分布式锁、分布式事务协调
数据库·spring boot·分布式
xmjd msup1 小时前
mysql的分区表
数据库·mysql