【Sql Server】基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用
作者:小5聊基础
简介:一只喜欢全栈方向的程序员,欢迎咨询,尽绵薄之力答疑解惑
编程原则:Write Less Do More

【开发环境】
开发系统:Windows 10
开发语言:SQL Server
开发工具:SQL Server 2008 R2
文章作用:记录、备忘、总结、分享、理解
人生格言:勤能补拙

【主要知识点】

编号 知识点 解释
1 group by 分组
2 having 筛选条件
3 count() 函数,总记录数
4 min() 函数,最小值
5 max() 函数,最大值
6 union all 记录叠加,重复不合并,但是字段必须一致
7 union和union all的区别

【知识点应用】

1、假如查询记录如下

select * from(
select 1 id,'语文' as kecheng union all
select 2 id,'数学' as kecheng union all
select 3 id,'语文' as kecheng union all
select 4 id,'英语' as kecheng union all
select 5 id,'语文' as kecheng union all
select 6 id,'数学' as kecheng
) as table_

image.png

2、分组运用,以及函数min、max、count的运用

select min(id) as minid,max(id) as maxid,count(1) as shuliang,kecheng from (
select 1 id,'语文' as kecheng union all
select 2 id,'数学' as kecheng union all
select 3 id,'语文' as kecheng union all
select 4 id,'英语' as kecheng union all
select 5 id,'语文' as kecheng union all
select 6 id,'数学' as kecheng
) as table_ group by kecheng

image.png

3、结合having筛选的使用

select min(id) as minid,max(id) as maxid,count(1) as shuliang,kecheng from (
select 1 id,'语文' as kecheng union all
select 2 id,'数学' as kecheng union all
select 3 id,'语文' as kecheng union all
select 4 id,'英语' as kecheng union all
select 5 id,'语文' as kecheng union all
select 6 id,'数学' as kecheng
) as table_ group by kecheng
having count(kecheng)>2

image.png

因此,从上面步骤即可排查出现重复的记录

【撸码写文档,我们是认真的】,

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
7月前
|
SQL Oracle 关系型数据库
SQL优化-使用联合索引和函数索引
在一次例行巡检中,发现一条使用 `to_char` 函数将日期转换为字符串的 SQL 语句 CPU 利用率很高。为了优化该语句,首先分析了 where 条件中各列的选择性,并创建了不同类型的索引,包括普通索引、函数索引和虚拟列索引。通过对比不同索引的执行计划,最终确定了使用复合索引(包含函数表达式)能够显著降低查询成本,提高执行效率。
|
7月前
|
SQL 数据库 数据库管理
数据库SQL函数应用技巧与方法
在数据库管理中,SQL函数是处理和分析数据的强大工具
|
7月前
|
SQL 数据库 索引
SQL中COUNT函数结合条件使用的技巧与方法
在SQL查询中,COUNT函数是一个非常常用的聚合函数,用于计算表中满足特定条件的记录数
1534 5
|
7月前
|
SQL
创建分组总计查询的SQL技巧与方法
在SQL中,创建分组总计查询(也称为聚合查询)是一项非常基础且重要的技能
|
7月前
|
SQL 关系型数据库 MySQL
SQL日期函数
SQL日期函数
102 0
|
存储 SQL 程序员
【Sql Server】存储过程通过作业定时执行按天统计记录
通过前两篇文章的学习,我们已经对创建表、存储过程、作业等功能点有所了解 本次将结合前面所学习的知识点,创建统计表以及结合作业定时按天以及实时统计域名各个长度的记录值
504 0
【Sql Server】存储过程通过作业定时执行按天统计记录
|
存储 SQL 数据库
SQL Server——为什么要使用存储过程?不使用是什么样的?
提高数据库执行速度,可能第一次见到这句话的小伙伴们感觉到非常的匪夷所思叭!怎么就提高了它的执行速度捏,从哪方面可以表现出来呢?既然这里要说到的是为什么要使用存储过程,也就是说它的优点是什么。那我们肯定就要对使用和不使用存储过程两方面来进行对比才能看出它的优点对吧。
|
SQL 存储 数据可视化
【Sql Server】存储过程通过定时执行添加记录作业
通过上篇了解了什么是存储过程,创建存储过程的方法,以及调用存储过程的方法 本次将通过数据库中的作业功能,进行定时执行存储过程,这样就可以完成我们刚开始假设的场景
670 0
|
SQL 存储 安全
【Sql Server】存储过程的创建和调用,随机添加域名记录
假设有这样一个场景 创建一个储存过程A,它执行添加一条随机产生3到8位长度的域名记录,通过定时器T1每隔1秒执行一次存储过程A 创建另一个存储过程B,它执行统计域名的长度3到8的记录数,通过定时器T2每隔1秒执行一次存储过程B
253 0
【Sql Server】存储过程的创建和调用,随机添加域名记录

热门文章

最新文章