一、SQL Server的聚合函数

在SQL Server中,常用的聚合函数包括:

  1. COUNT:计算指定列中非NULL值的数量。
  2. SUM:计算指定列中数值的总和。
  3. AVG:计算指定列中数值的平均值。
  4. MIN:计算指定列中的最小值。
  5. MAX:计算指定列中的最大值。
  6. GROUP BY:按照指定列的值进行分组。
  7. HAVING:对分组后的结果进行条件过滤。
  8. DISTINCT:去除查询结果中的重复行。

示例:

  1. 计算某表中的行数:

    SELECT COUNT(*) FROM table_name;

  2. 计算某列的总和:

    SELECT SUM(column_name) FROM table_name;

  3. 计算某列的平均值:

    SELECT AVG(column_name) FROM table_name;

  4. 计算某列的最小值:

    SELECT MIN(column_name) FROM table_name;

  5. 计算某列的最大值:

    SELECT MAX(column_name) FROM table_name;

  6. 分组统计某列的数量:

    SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name;

  7. 分组统计某列的数量,并筛选结果:

    SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name HAVING COUNT(*) > 1;

  8. 查询某列的不重复值:

    SELECT DISTINCT column_name FROM table_name;

请注意,在使用聚合函数时,需要将其与其他列一起使用时,可能需要使用GROUP BY子句来分组数据。

二、SQL Server的联合查询

在 SQL Server 中,可以使用 UNION 或 UNION ALL 运算符来进行联合查询。这两个运算符的区别在于 UNION 运算符会去除重复行,而 UNION ALL 运算符会包含所有行,包括重复行。

下面是一个使用 UNION 运算符的示例:

SELECT column1, column2 FROM table1UNIONSELECT column1, column2 FROM table2

这个查询将会返回 table1 和 table2 中的所有不重复的行。

下面是一个使用 UNION ALL 运算符的示例:

SELECT column1, column2 FROM table1UNION ALLSELECT column1, column2 FROM table2

这个查询将会返回 table1 和 table2 中的所有行,包括重复行。

注意:在进行联合查询时,要确保两个 SELECT 语句中选取的列数和数据类型一致。

三、SQL Server的左连接右连接内连接

在SQL Server中,连接(JOIN)是用于从两个或多个表中检索数据的常见操作。以下是SQL Server中的三种主要的连接类型:左连接(LEFT JOIN)、右连接(RIGHT JOIN)和内连接(INNER JOIN)。

  1. 左连接(LEFT JOIN 或 LEFT OUTER JOIN):

左连接会返回左表中的所有记录,以及与右表匹配的记录。如果在右表中没有匹配的记录,则结果集中对应的字段将包含NULL值。

示例:

SELECT A.*, B.*FROM TableA ALEFT JOIN TableB B ON A.Key = B.Key;

2.右连接(RIGHT JOIN 或 RIGHT OUTER JOIN):

右连接与左连接相反,会返回右表的所有记录和与左表匹配的记录。如果在左表中没有匹配的记录,结果集中的字段将包含NULL值。

示例:

SELECT A.*, B.*FROM TableA ARIGHT JOIN TableB B ON A.Key = B.Key;

3.内连接(INNER JOIN):

内连接只会返回两个表中都有匹配的记录。如果没有匹配的记录,结果集中不会包含相应的行。

示例:

SELECT A.*, B.*FROM TableA AINNER JOIN TableB B ON A.Key = B.Key;

在实际应用中,选择使用哪种连接类型取决于你的查询需求和想要获取的数据。一般来说,内连接和左连接是最常见的。右连接在实际使用中相对较少,因为你可以通过将你的查询条件反转来达到同样的效果,而且这样的查询可能更容易理解。