SQL group by语句

SQL group by语句

在SQL中, Group By 语句用于将相似的数据组织成组。数据进一步通过等价函数进行组织。这意味着,如果精确列中的不同行具有相同的值,它将把这些行排列到一个组中。

  • SELECT语句 与SQL查询中的 GROUP BY 子句一起使用。
  • WHERE子句GROUP BY 子句之前放置在SQL中。
  • ORDER BY子句GROUP BY 子句之后放置在SQL中。

语法:

SELECT column1, function_name(column2)
FROM table_name
WHERE condition
GROUP BY column1, column2
ORDER BY column1, column2;
function_name: Table name.
Condition: which we used.

样本表格:

员工

S.no Name AGE Salary
1 John 24 25000
2 Nick 22 22000
3 Amara 25 15000
4 Nick 22 22000
5 John 24 25000

学生

SUBJECT YEAR NAME
C language 2 John
C language 2 Ginny
C language 2 Jasmeen
C language 3 Nick
C language 3 Amara
Java 1 Sifa
Java 1 dolly

示例:

按单列分组:Group By 单列用于将具有相同值的所有行放置在一起。这些值是指定列中的值。它表示所有行将通过一个适当的列放置相等数量的行,即在一个组中。

考虑下面的查询:

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

查询的输出结果是:

NAME SALARY
John 50000
Nick 44000
Amara 15000

在输出中,持有重复 名称 的行被分组为类似的名称,并且它们对应的工资是重复行的工资总和。

  • 基于多列进行分组: 一些列的组合 GROUP BY 列1,列2等。在这里,我们将所有具有相似的列1和列2的行放在一个组中。

考虑以下查询:

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

输出:

SUBJECT YEAR Count
C language 2 3
C language 3 2
Java 1 2

在上面的输出中,具有相似 SUBJECTYEAR 的学生被分组在同一个地方。只有一件共同之处的学生属于不同的组。例如,如果姓名相同,年份不同。

现在,我们需要根据多个或两个列来进行分组。

HAVING子句

WHERE 子句用于决定目的。它用于对列设置条件,以确定组的最终结果集的部分。在这里,我们不需要在 WHERE 子句中使用组合函数,如 COUNT(),SUM(), 等。之后,我们需要使用 HAVING 子句。

HAVING子句语法:

SELECT column1, function_name(column2)
FROM table_name
WHERE condition
GROUP BY column1, column2
HAVING condition
ORDER BY column1, column2;
function_name:  Mainly used for name of the function, SUM(), AVG().
table_name: Used for name of the table.
condition: Condition used.

示例:

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

输出:

Name SUM(SALARY)
John 50000

根据以上输出,结果中只列出了NAME列中的一个姓名,因为数据库中只有一条数据的工资总和超过50000。

它应该放在组上,而不是在列上。

要点:

  • GROUP BY 子句用于对具有相同值的行进行分组。
  • SQL 中,SELECT语句与GROUP BY子句一起使用。
  • GROUP BY 子句中,SELECT语句可以使用 常量、聚合函数、表达式和列名
  • 当使用HAVING子句来缩小结果时,调用 GROUP BY 子句。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程