SQL语句常用记录_count()常用用法以及和group by的组合用法

  • Post author:
  • Post category:其他


之前听大佬说过,会学习的人将资料写下来,不会学习的人妄想将资料记到脑子里,我觉得还是有一定道理的,好记性不如烂笔头。以此篇博客记录我在实际开发中常用到的sql语句,方便以后查看。

相信很多用过sql的人,谈到sql语句第一时间想到的就是:select * form 表名 where 条件,这是最基本的查询,下面我将简单介绍SQL语句的执行顺序开始介绍。

sql执行顺序

(1)from

(3) join

(2) on

(4) where

(5)group by(开始使用select中的别名,后面的语句中都可以使用)

(6) avg,sum…

(7)having

(8) select

(9) distinct

(10) order by

更加详细的信息请访问

https://www.cnblogs.com/yuanshuo/p/11549251.html

我觉得总结的很好,很推荐看一下。

新建一个测试表,方便后面进行演示。

create table Test_S
(
	Id   int     not null identity (1,1), --主鍵,自增+1
	Name nvarchar(100)  not null, 
	mathematics int,
	physical int
)
INSERT INTO Test_S (Name, mathematics,physical) VALUES ('A', 85,75)
INSERT INTO Test_S (Name, mathematics,physical) VALUES ('B', 95,85)
INSERT INTO Test_S (Name, mathematics,physical) VALUES ('C', 85,65)
INSERT INTO Test_S (Name, mathematics,physical) VALUES ('D', 75,75)
INSERT INTO Test_S (Name, mathematics,physical) VALUES ('E', 80,80)
INSERT INTO Test_S (Name, mathematics,physical) VALUES ('F', 70,70)
INSERT INTO Test_S (Name, mathematics,physical) VALUES ('G', 85,70)
INSERT INTO Test_S (Name, mathematics,physical) VALUES ('H', 80,75)
INSERT INTO Test_S (Name, mathematics,physical) VALUES ('J', 80,NULL)

在这里插入图片描述

  1. 先介绍count()的常见用法
select count(*) Num from [KM(Test)].[dbo].[Test_S]

效果:count(*)直接就是把所有的数据统计数量(结果如下图)

在这里插入图片描述

 select count(physical) Num, count(mathematics) Num2 from [KM(Test)].[dbo].[Test_S]

效果:count(栏位) 会忽略null的数据统计数量(结果如下图)

在这里插入图片描述

 select count(distinct mathematics) num from [KM(Test)].[dbo].[Test_S]

效果:count(distinct 栏位) 会忽略重复的数据统计非重复数据数量(结果如下图)

在这里插入图片描述

select count(case when mathematics = 85 then '1' end) num from [KM(Test)].[dbo].[Test_S]

效果:count(case when 栏位= 条件 then ‘1’ end) 会统计查询条件的数量(结果如下图)

在这里插入图片描述

select mathematics,count(mathematics) Num from [KM(Test)].[dbo].[Test_S] group by mathematics

效果:count(1)与group by 连用可以统计每个非重复数据的重复数量(结果如下图)

在这里插入图片描述

 select count(1) Num from (select mathematics,count(mathematics) Num from [KM(Test)].[dbo].[Test_S] group by mathematics)S

效果:count(1)与group by 连用再用子查询方式进行统计可以和count(distinct 栏位)达到一样的效果,统计非重复的数据的个数(结果如下图)

在这里插入图片描述

目前我常用的基本就这些,后续有其他用法我会更新,欢迎评论其他常用用法。



版权声明:本文为qq_41894426原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。