`

[SQLServer]group by, having, distinct

 
阅读更多

GROUP BY [ALL] (column1[,column2,...]) 分组

 

在select语句中所定义的任何列,如果没有被应用于聚合中,则必须以在select语句中的顺序,包含到GROUP BY语句中。

GROUP BY ALL: 如果在select语句中使用了where语句,则被筛选的分组仍会在结果中返回一行,而不是对列的聚合,一个NULL值会被返回

SELECT         shareId, MIN(price) minPrice, MAX(price) maxPrice

FROM            sharePrices

WHERE         shareId < 200

GROUP BY     shareId
 

 

 

 

HAVING 分组后筛选

 

用在GROUP BY [ALL]后,对分组后的数据进行筛选,此时GROUP BY ALL的结果也会被筛选。

 

SELECT          custId, COUNT(*)

FROM             custBankTrans

WHERE          transDate BETWEEN 'startDate'  AND  'endDate'

GROUP BY     custId

HAVING         COUNT(*) > 10
 

 

 

DISTINCT 独特值,去重

 

去除相同的记录结果,保证记录都是唯一的

 

SELECT     DISTINCT s.shareDesc, sp.price, sp.priceDate

FROM        shares s

JOIN         sharePrices sp

ON            sp.shareId = s.shareId
 

 

 

 

分享到:
评论

相关推荐

    Oracle和SqlServer语法区别

    Oracle和SqlServer语法区别 Oracle和SqlServer是两种流行的关系型数据库管理系统,它们之间存在着一些语法区别。了解这些区别对于开发者来说非常重要,因为它可以帮助他们更好地迁移到新的数据库管理系统。下面将...

    ORACLE和SQL Server的语法区别

    ### ORACLE和SQL Server的语法区别 #### 一、概述 本文主要介绍Oracle与SQL Server在SQL语言层面的异同之处,重点在于Transact-SQL(T-SQL)与PL/SQL之间的区别,并提供了一些迁移策略。对于希望将现有的Oracle...

    SQl server练习50题

    5. GROUP BY与HAVING子句:GROUP BY用于对数据进行分组,HAVING则用于在分组后筛选满足条件的组。 二、多表查询 在实际业务中,往往需要处理多个表之间的关联,这就涉及到了多表查询: 1. INNER JOIN:返回两个表...

    sqlServer删除重复数据

    SELECT 主字段, COUNT(*) FROM 表名 GROUP BY 主字段 HAVING COUNT(*) &gt; 1 OPEN cur_rows FETCH cur_rows INTO @id, @max WHILE @@FETCH_STATUS = 0 BEGIN SELECT @max = @max - 1 SET ROWCOUNT @max DELETE FROM...

    SQL Server数据库常用操作

    这个查询使用了分组(GROUP BY)和聚合函数(HAVING),并且演示了如何判断两个条件同时满足。 4. 查找特定两门课程成绩的比较。这个查询使用了自连接(SC1和SC2),并且需要注意别名的使用。 5. 查找特定两门课程...

    sqlserver sql语法大全

    ### SQLServer SQL语法大全 #### 创建数据库 在SQL Server中创建数据库是一项基本操作,通过`CREATE DATABASE`命令来实现。创建数据库时可以指定文件和日志文件的位置、初始大小及增长方式等参数。 **语法示例:**...

    常见的SQLServer数据库试题.doc

    SELECT 语句的完整语法包括 SELECT、FROM、WHERE、GROUP BY、HAVING 等子句,可以使用关键字 DISTINCT 将重复行屏蔽,使用关键字 UNION 将多个查询结果返回一个结果集合。 视图 视图是一种常用的数据对象,提供了...

    SQL Server2005 技术内幕:T-SQL查询(笔记).docx

    2.查询执行步骤:包括 select、distinct、top_specification、from、join、on、where、group by、having、order by 等步骤,每一步骤都会产生一个虚拟表,并作为下一步骤的输入。但这些虚拟表对调用者不可用,只有...

    SQL Server数据库基础学习笔记

    GROUP BY语句结合聚合函数用于数据分组,HAVING则用于过滤分组后的数据。LIMIT语句(在SQL Server中常表示为TOP或结合RowNumber函数)用于限制返回结果的数量,DISTINCT关键字用于去除重复数据。UNION操作用于合并多...

    SQL Server练习题答案

    综上所述,文档中的练习题答案涵盖了SQL Server中常用的查询操作,包括表连接、分组、聚合函数、子查询、模式匹配、以及用于过滤分组结果的HAVING子句等,对于理解SQL的基本结构和操作具有很大的帮助。

    sql server 2005 幻灯片

    这个格式允许我们选择一个或多个列,从一个或多个表或视图中提取数据,还可以应用筛选(WHERE子句)、分组(GROUP BY子句)、分组后的条件过滤(HAVING子句)以及排序(ORDER BY子句)。 例如,查询全体学生的学号...

    Microsoft SQL Server 2005技术内幕:T-SQL查询

    首先,书中会介绍T-SQL的基础知识,包括SELECT语句的结构和用法,用于获取数据的FROM、WHERE、GROUP BY和HAVING子句,以及ORDER BY和DISTINCT关键字。这些基本概念是所有复杂查询的基础,对理解数据检索至关重要。 ...

    SQL server综合练习

    通过以上知识点的介绍,我们不难发现,SQL Server的综合练习涵盖了数据库查询的多个方面,包括基本的SELECT语句、字段别名、条件筛选、进阶查询技巧(如DISTINCT、GROUP BY、HAVING)、表连接、子查询以及数据排序。...

    SQLSERVER数据库面试题及答案

    SQLSERVER 数据库面试题及答案 面对数据库面试时,候选人需要具备扎实的理论基础和实践经验,以下我们将为您提供一些常见的数据库面试题和答案,帮助您更好地准备面试。 1. 使用标准 SQL 嵌套语句查询选修课程名称...

    sqlserver期末考试试题A.pdf

    涵盖了SQL Server的身份验证模式、主键、默认值约束、全局变量、触发器、检查约束、通配符、存储过程、SELECT语句、WHERE子句、ORDER BY子句、GROUP BY子句、HAVING子句、视图、存储过程、游标等多个知识点。...

    SQL Server视频教程(以2000为例,结合使用范例,深入浅出,图文并茂)

    本章的学习目标是让学生掌握如何使用T-SQL语句来操作数据库中的数据,包括但不限于数据库和表的操作,SELECT语句的基本结构,以及如何使用GROUP BY和ORDER BY子句,以及汇总函数的应用。 首先,SQL语言是数据库操作...

    SqlServer经典考试题

    ### SQLServer经典考试题知识点解析 #### 题目背景及意义 本篇文章将围绕一组经典的SQLServer面试题目展开分析,这些题目旨在测试应聘者对于SQL语言的理解与应用能力,特别是针对多表关联查询的能力。通过解答这些...

    SQL Server 2005中的SQL简单查询

    SELECT sc.studentid FROM student_courses sc GROUP BY sc.studentid HAVING COUNT(sc.courseid) &gt; 2 AND MIN(sc.score) &gt;= 60; ``` - **统计每个学院的总人数,要求列出学院编号和学生人数,并按学生总人数从高...

    影响SQL Server性能的三个关键点

    此外,适当使用聚合函数、GROUP BY和HAVING子句,以提高数据分组的效率。 总结来说,提升SQL Server性能需要在设计阶段就充分考虑数据结构的优化,合理创建索引,并编写高效的查询语句。理解这些关键点并根据实际...

Global site tag (gtag.js) - Google Analytics