sql关键字group by

SQL中的GROUP BY语句用于借助某些function将相同的数据分组。注意这里的借助二字。也就是说,如果特定的列在不同的行中具有相同的值,则它将这些行排列在一组中。

关于GROUP BY的使用要点:

  • GROUP BY子句需要和SELECT语句一起使用。
  • 在查询中,GROUP BY子句放在WHERE子句之后。
  • 在查询中,如果使用GROUP BY子句,则将其放在ORDER BY子句之前。

其语法格式如下:

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

例,假设有customers表如下:

现在假设有如下sql语句:

SELECT NAME, SUM(SALARY) FROM Employee 
GROUP BY NAME;

则其查询结果为:

从上面的输出中可以看到,具有重复名称的行被分组在同一列下,它们对应的SALARY是重复行的SALARY之和。 SQL的SUM()函数用于计算总和。

也可以group by多个column。

例如:GROUP BY column1,column2。 这个写法的意思是将具有相同的列1和列2值的所有行放在一组中。例如有如下的表students:

现有sql语句如下:

SELECT SUBJECT, YEAR, Count(*)
FROM Student
GROUP BY SUBJECT, YEAR;

其查询结果为:

HAVING

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。

HAVING 子句可以让我们筛选分组后的各组数据。

其用法如下:

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章