SQL Server连接表与分组数据

SQL Server连接表与分组数据
SQL Server数据库支持多种连接表方式,其中包括内连接、左连接、右连接、全外连接、交叉连接。
内连接是SQL Server中最常见的连接之一。内部连接子句用于查询来自两个或多个相关表的数据。
SQL Server中子句的语法:
内连接:select * from 主表T1 inner join 副表T2 on join_predicate;
左连接:select * from T1 Left join T2 on join_predicate;
右连接:select * from T2 Rightjoin T1 on join_predicate;
自连接: select * from T_T1 inner join T_T2 on join_predicate;
内连接:合并具有同一列的两个以上的表的行, Inner join 从表中选择在另一个表中具有匹配的行. 结果集中不包含一个表与另一个表不匹配的行.
Left join左连接表相比于内连接表来说,内联接表结果集中有关联的数据,不包含一个表和另一个表不匹配的行.左连接的左表1(主表)的数据结果集中展现出来,右表2不匹配的对右表中的列值使用NULL值。
RIGHT JOIN右连接:开始从右表中选择数据并与左表中的行匹配。 RIGHT JOIN返回一个结果集,该结果集包含右表中的所有行,无论是否具有左表中的匹配行。 如果右表中的行没有来自右表的任何匹配行,则结果集中右表的列将使用NULL值
CROSS JOIN交叉连接: 连接多个不相关的表,将第一个表(T1)中的每一行与第二个表(T2)中的每一行连接起来。 换句话说,交叉连接返回两个表中行的笛卡尔积。
自连接:用于将表连接到自身(同一个表)。由于使用自联接的查询引用同一张表,因此表明用于查询中的表分配不同的名称。
分组数据
分组数据 :所谓分组就是把一块“数据集”划分成若干个“小区域”,然后针对若干个“小区域“进行数据处理。
分组函数Group by 在查询语句中为列中每个值组合成一个组,通常和聚合函一起用于统计。聚合函数有:总数量Sum()、平均值Avg()、最小值Min()、最大值Max()。还有一个计数函数Count()。
Count()函数用于返回每个组中的行数
Group by 和 聚合函数以及计数函数的子句,例:
Select Sum(列名),Avg(列名),Min(列名),Max(列名),Count(列名) from 表 group by 列名
查询的便是聚合函数对组执行计算并返回每个组的唯一值中的数据值之和、平均值、最大值和每个组的行数。
非法使用组函数:不能在Where 子句中使用组函数;
可以在Having子句中使用组函数。
过滤分组 Having子句
使用Having过滤分组:行已经被分组。使用组函数。满足having子句中条件的分组将被显示。
Having子句通常和Group by子句一起使用,以根据条件列表过滤分组。Group by 子句将行汇总为分组,Having 子句将一个或多个条件应用于这些每个分组。
因为SQL Server在GROUP BY子句之后处理HAVING子句,所以不能通过使用列别名来引用选择列表中指定的聚合函数。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值