📜  SQL – 带有 Group By 子句的 count()

📅  最后修改于: 2022-05-13 01:54:55.509000             🧑  作者: Mango

SQL – 带有 Group By 子句的 count()

count()函数是一个聚合函数,用于查找满足固定条件的行数。带有GROUP BY子句的 count()函数用于计算按表的特定属性分组的数据。

句法:

SELECT attribute1 , COUNT(attribute2)
FROM table_name
GROUP BY attribute1

在本文中,让我们看看使用 MSSQL 作为服务器的带有 Group by 子句的 SQL count()。

第 1 步:我们正在创建一个数据库。为此,请使用以下命令创建一个名为 GeeksforGeeks 的数据库。

询问:

CREATE DATABASE GeeksforGeeks;

第 2 步:要使用 GeeksforGeeks 数据库,请使用以下命令。

询问:

USE GeeksforGeeks

第 3 步:现在我们正在创建一个表。使用以下 SQL 查询创建具有 4 列的表 student_marks。

询问:

CREATE TABLE student_marks(
stu_id VARCHAR(20),
stu_name VARCHAR(20),
stu_branch VARCHAR(20),
total_marks INT
)

第 4 步:查看表的描述。

询问:

EXEC sp_columns student_marks

第 5 步:在表中插入行的查询。使用以下 SQL 查询将行插入到 student_marks 表中。

询问:

INSERT INTO student_marks
VALUES( '1001','PRADEEP','E.C.E', 550),
( '1002','KIRAN','E.C.E', 540),
( '1003','PRANAV','E.C.E', 450),
( '2001','PADMA','C.S.E', 570),
( '2002','SRUTHI','C.S.E', 480),
( '2003','HARSITHA','C.S.E', 534),
( '3001','SAI','I.T', 560),
( '3002','HARSH','I.T', 510),
( '3003','HARSHINI','I.T', 500)

第 6 步:查看插入的数据

询问:

SELECT * FROM student_marks

  • 查询每个分支的学生人数
SELECT stu_branch, COUNT(stu_id) AS number_of_students
FROM student_marks
GROUP BY stu_branch

  • 查询成绩高于该表平均成绩的学生人数。
SELECT AVG(total_marks) AS average,COUNT(stu_id) AS number_of_students
FROM student_marks
WHERE total_marks>(SELECT AVG(total_marks) FROM student_marks)