T-SQL - GROUP BY 子句

  • 简述

    SQL 服务器GROUP BY子句与 SELECT 语句配合使用,将相同的数据分组。
    GROUP BY 子句在 SELECT 语句中位于 WHERE 子句之后,位于 ORDER BY 子句之前。
  • 句法

    以下是 GROUP BY 子句的基本语法。GROUP BY 子句必须遵循 WHERE 子句中的条件,并且如果使用 ORDER BY 子句,则必须先于 ORDER BY 子句。
    
    SELECT column1, column2 
    FROM table_name 
    WHERE [ conditions ] 
    GROUP BY column1, column2 
    ORDER BY column1, column2 
    
  • 例子

    考虑 CUSTOMERS 表有以下记录 -
    
    ID  NAME       AGE       ADDRESS          SALARY 
    1   Ramesh     32        Ahmedabad        2000.00 
    2   Khilan     25        Delhi            1500.00 
    3   kaushik    23        Kota             2000.00 
    4   Chaitali   25        Mumbai           6500.00 
    5   Hardik     27        Bhopal           8500.00 
    6   Komal      22        MP               4500.00 
    7   Muffy      24        Indore           10000.00 
    
    如果你想知道每个客户的工资总额,那么下面将是 GROUP BY 查询。
    
    SELECT NAME, SUM(SALARY) as [sum of salary] FROM CUSTOMERS 
       GROUP BY NAME;
    
    上面的命令将产生以下输出。
    
    NAME        sum of salary 
    Chaitali    6500.00 
    Hardik      8500.00 
    kaushik     2000.00 
    Khilan      1500.00 
    Komal       4500.00 
    Muffy       10000.00 
    Ramesh      2000.00
    
    现在让我们考虑以下 CUSTOMERS 表,该表具有以下重名记录。
    
    ID  NAME       AGE       ADDRESS           SALARY 
    1   Ramesh     32        Ahmedabad         2000.00 
    2   Khilan     25        Delhi             1500.00 
    3   kaushik    23        Kota              2000.00 
    4   Chaitali   25        Mumbai            6500.00 
    5   Hardik     27        Bhopal            8500.00 
    6   Komal      22        MP                4500.00 
    7   Muffy      24        Indore            10000.00 
    
    如果我们想知道每个客户的工资总额,那么下面将是 GROUP BY 查询。
    
    SELECT NAME, SUM(SALARY) as [sum of salary] FROM CUSTOMERS 
       GROUP BY NAME 
    
    上面的命令将产生以下输出。
    
    NAME        sum of salary 
    Hardik      8500.00 
    kaushik     8500.00 
    Komal       4500.00 
    Muffy       10000.00 
    Ramesh      3500.00