SQL Server COUNT() 和SUM()的使用方法 - CSDN博客
SQL Server COUNT() 和SUM()的使用方法
根据BOL中解释COUNT用来返回组中的项数。
COUNT(*)返回组中的项数。包括 NULL 值和重复项
COUNT(ALL expression):对组中的每一行都计算 expression 并返回非空值的数量。默认值。
COUNT(DISTINCT expression):对组中的每一行都计算 expression 并返回唯一非空值的数量。
ID&&&&&&&&& Value
----------- --------------------------------------------------
1&&&&&&&&&& A
2&&&&&&&&&& B
2&&&&&&&&&& B
3&&&&&&&&&& B
4&&&&&&&&&& NULL
select COUNT(* ) from Table_1
-----------
SELECT COUNT(Value) FROM Table_1
-----------
SELECT COUNT(DISTINCT Value) FROM Table_1
-----------
SUM返回表达式中所有值的和或仅非重复值的和。SUM 只能用于数字列。空值将被忽略
ID&&&&&&&&& Value
----------- -----------
1&&&&&&&&&& 1
2&&&&&&&&&& 2
3&&&&&&&&&& 3
4&&&&&&&&&& 4
5&&&&&&&&&& NULL
6&&&&&&&&&& 5
7&&&&&&&&&& 5
SELECT SUM(Value) From Table_1
-----------
SELECT SUM(DISTINCT Value) From Table_1
-----------
以Northwind数据库中的Employees,Orders表为例,列出所有雇员的姓名以及其拥有的Order的个数。分别用Count()和SUM()实现。
SELECT e.EmployeeID,FirstName,LastName,Count(O.EmployeeID) AS OrderCount
FROM dbo.Employees AS E LEFT JOIN dbo.Orders AS O
ON E.EmployeeID = O.EmployeeID
Group By E.EmployeeID,FirstName,LastName
SELECT e.EmployeeID,FirstName,LastName,SUM(CASE WHEN O.EmployeeID IS NULL THEN 0 ELSE 1 END) AS OrderCount
FROM dbo.Employees AS E LEFT JOIN dbo.Orders AS O
ON E.EmployeeID = O.EmployeeID
Group By E.EmployeeID,FirstName,LastName
注意的是这里一定不能用COUNT(*),因为COUNT(*)是计算行数,对于没有定单的用户也是为1。只有在JOIN的情况下,COUNT(*)才等效于Count(O.EmployeeID
附:这两个表的定义。
USE [Northwind]
/****** Object:& Table [dbo].[Employees]&&& Script Date: 01/13/:44 ******/
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].[Employees](
&&&&& [EmployeeID] [int] IDENTITY(1,1) NOT NULL,
&&&&& [LastName] [nvarchar](20) NOT NULL,
&&&&& [FirstName] [nvarchar](10) NOT NULL,
&&&&& [Title] [nvarchar](30) NULL,
&&&&& [TitleOfCourtesy] [nvarchar](25) NULL,
&&&&& [BirthDate] [datetime] NULL,
&&&&& [HireDate] [datetime] NULL,
&&&&& [Address] [nvarchar](60) NULL,
&&&&& [City] [nvarchar](15) NULL,
&&&&& [Region] [nvarchar](15) NULL,
&&&&& [PostalCode] [nvarchar](10) NULL,
&&&&& [Country] [nvarchar](15) NULL,
&&&&& [HomePhone] [nvarchar](24) NULL,
&&&&& [Extension] [nvarchar](4) NULL,
&&&&& [Photo] [image] NULL,
&&&&& [Notes] [ntext] NULL,
&&&&& [ReportsTo] [int] NULL,
&&&&& [PhotoPath] [nvarchar](255) NULL,
&CONSTRAINT [PK_Employees] PRIMARY KEY CLUSTERED
&&&&& [EmployeeID] ASC
)WITH (PAD_INDEX& = OFF, STATISTICS_NORECOMPUTE& = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS& = ON, ALLOW_PAGE_LOCKS& = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
ALTER TABLE [dbo].[Employees]& WITH NOCHECK ADD& CONSTRAINT [FK_Employees_Employees] FOREIGN KEY([ReportsTo])
REFERENCES [dbo].[Employees] ([EmployeeID])
ALTER TABLE [dbo].[Employees] CHECK CONSTRAINT [FK_Employees_Employees]
ALTER TABLE [dbo].[Employees]& WITH NOCHECK ADD& CONSTRAINT [CK_Birthdate] CHECK& (([BirthDate] & getdate()))
ALTER TABLE [dbo].[Employees] CHECK CONSTRAINT [CK_Birthdate]
USE [Northwind]
/****** Object:& Table [dbo].[Orders]&&& Script Date: 01/13/:09 ******/
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].[Orders](
&&&&& [OrderID] [int] IDENTITY(1,1) NOT NULL,
&&&&& [CustomerID] [nchar](5) NULL,
&&&&& [EmployeeID] [int] NULL,
&&&&& [OrderDate] [datetime] NULL,
&&&&& [RequiredDate] [datetime] NULL,
&&&&& [ShippedDate] [datetime] NULL,
&&&&& [ShipVia] [int] NULL,
&&&&& [Freight] [money] NULL,
&&&&& [ShipName] [nvarchar](40) NULL,
&&&&& [ShipAddress] [nvarchar](60) NULL,
&&&&& [ShipCity] [nvarchar](15) NULL,
&&&&& [ShipRegion] [nvarchar](15) NULL,
&&&&& [ShipPostalCode] [nvarchar](10) NULL,
&&&&& [ShipCountry] [nvarchar](15) NULL,
&CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED
&&&&& [OrderID] ASC
)WITH (PAD_INDEX& = OFF, STATISTICS_NORECOMPUTE& = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS& = ON, ALLOW_PAGE_LOCKS& = ON) ON [PRIMARY]
) ON [PRIMARY]
ALTER TABLE [dbo].[Orders]& WITH NOCHECK ADD& CONSTRAINT [FK_Orders_Customers] FOREIGN KEY([CustomerID])
REFERENCES [dbo].[Customers] ([CustomerID])
ALTER TABLE [dbo].[Orders] CHECK CONSTRAINT [FK_Orders_Customers]
ALTER TABLE [dbo].[Orders]& WITH NOCHECK ADD& CONSTRAINT [FK_Orders_Employees] FOREIGN KEY([EmployeeID])
REFERENCES [dbo].[Employees] ([EmployeeID])
ALTER TABLE [dbo].[Orders] CHECK CONSTRAINT [FK_Orders_Employees]
ALTER TABLE [dbo].[Orders]& WITH NOCHECK ADD& CONSTRAINT [FK_Orders_Shippers] FOREIGN KEY([ShipVia])
REFERENCES [dbo].[Shippers] ([ShipperID])
ALTER TABLE [dbo].[Orders] CHECK CONSTRAINT [FK_Orders_Shippers]
ALTER TABLE [dbo].[Orders] ADD& CONSTRAINT [DF_Orders_Freight]& DEFAULT (0) FOR [Freight]
本文已收录于以下专栏:
相关文章推荐
=&背景介绍
-&tableSales表
-&第一次查询(2013销售员销售总额)
select salesName, sum(extendedPrice) as sumprice13 ...
SQL Server中由于对空值的忽略处理会导致使用COUNT时出现一些意想不到的结果,本文分析了这些结果及其原因并给出相应的解决办法。
返回单一值的函数称做聚集函数(aggregate function)。通过应用程序访问下列聚集函数的结果时,包含结果的“字段名”就是你所使用的实际函数。例如,在分析你的数据库结果时,结果数组的键值可能...
SELECT Customer,SUM(OrderPrice) FROM Orders
WHERE Customer='Bush' OR Customer='Adams'
GROUP BY Custo...
SUM函数的语法是:
代码如下 复制代码
SELECT SUM(expression )
FROM tables
表达式可以是一个数值字段或公式...
sum函数在SQL Server 2005中,添加了 over(partition by )的功能。
在中添加了 over(partition by order by )的功能,...
在可视化程序设计中,每个应用程序都包含一个主窗体。主窗体并不仅仅是一个Form窗体,一个完整的应用程序窗体除了Form窗体外,还应包括菜单栏、工具栏和状态栏等相关组件。这三种组件是主程序窗体的重要组成...
聚合函数 在介绍GROUP BY 和 H***ING 子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数, 例如SUM, COUNT, MAX, ***G等。这些函数和其它函数的根本区别就是...
他的最新文章
讲师:吴岸城
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)& 求助啊。每次开机显示CMOS CHECKESUM ERROR
查看: 2620|回复: 7
UID3625995主题阅读权限20帖子精华0积分156金钱3973 荣誉1 人气0 在线时间2073 小时评议0
Lv.2游侠会员, 积分 156, 距离下一级还需 44 积分
帖子精华0积分156金钱3973 荣誉1 人气0 评议0
如题。在下用的技嘉GA-P55A-UD3R,I5 760, 使用快年半了。
前几日没事清理机箱里的尘土给CPU和显卡换了个散热器,开机后就开始显示cmos checksum error(如图) ,只要冷关机开机就会显示,重启没事。
21:59:32 上传
开始以为是电池没电了,今天换了块电池依旧不行,BIOS的版本是F12现在刷到F13依旧不行{:12_414:}。
能进系统,玩游戏之类的全部没问题,但是每次时间都会重置让人狠郁闷。。
哪位大大能帮助在下。还有什么其他的解决办法没???
PSN:EclairTr-6
游侠元勋版主GTA☆Mafia-Angel游侠特级DIYER
UID927568主题阅读权限100帖子精华0积分3023金钱25844 荣誉12 人气245 在线时间5860 小时评议0
帖子精华0积分3023金钱25844 荣誉12 人气245 评议0
我以前的GA880GA-UD3H也经常在开机时按错键出现这选项。。然后CPU变回4核。。
GTA4 正版收藏会员名录:&&&&☆& &
秒速5センチメ?トル呢喃的歌声红尘飘逸 游骑兵速攻??石成金
UID2061804主题阅读权限60帖子精华2积分3792金钱667 荣誉37 人气84 在线时间1006 小时评议0
Lv.6游侠黄金会员, 积分 3792, 距离下一级还需 2208 积分
帖子精华2积分3792金钱667 荣誉37 人气84 评议0
{:12_415:}我10天出现过这类事情,去修了下,查看下内存条,或重装系统。当时维修人员是这么做的
ACG,宅,聊天,LOL群
大河,大河,大河剧...
/cvbnm/44/b4/3e/9ad6a753b2ea149f5ed52602efdb196a.png
/cvbnm/00/51/d2/6ed0ae381eca19b02839.jpg
http://bbsimg.ali213.net/attachments/day_f2ebef70f5854a5bRpS4m8jk4pJ.jpg
http://clear.kilu.de/mikuto.php?a.jpg
UID782279主题阅读权限20帖子精华0积分558金钱4322 荣誉0 人气1 在线时间1683 小时评议0
头像被屏蔽
帖子精华0积分558金钱4322 荣誉0 人气1 评议0
提示: 作者被禁止或删除 内容自动屏蔽
UID3625995主题阅读权限20帖子精华0积分156金钱3973 荣誉1 人气0 在线时间2073 小时评议0
Lv.2游侠会员, 积分 156, 距离下一级还需 44 积分
帖子精华0积分156金钱3973 荣誉1 人气0 评议0
蔷薇白 发表于
我10天出现过这类事情,去修了下,查看下内存条,或重装系统。当时维修人员是这么做的 ...
白天把内存条擦擦,再下个系统重新装上试试看。。
不行的话就凑合用了、、、、、
感谢帮助~{:12_405:}
真实诡异啊,在电源开着的情况下关机没事,关总电源就会出现,。。。。。
PSN:EclairTr-6
游侠高级DIYER
UID4260095主题阅读权限60帖子精华1积分3080金钱9347 荣誉8 人气279 在线时间11745 小时评议0
Lv.6游侠黄金会员, 积分 3080, 距离下一级还需 2920 积分
帖子精华1积分3080金钱9347 荣誉8 人气279 评议0
我也觉得是电池没电了
游侠网硬件区群& &
电脑型号& & & & 技嘉 AX370-Gaming K7 台式电脑&&(扫描时间:日)
操作系统& & & & Windows 10 专业版 64位 ( DirectX 12 )
处理器& & & & AMD Ryzen 7 1700X Eight-Core Processor 八核
主板& & & & 技嘉 AX370-Gaming K7 ( AMD PCI 标准主机 CPU 桥 )
内存& & & & 8 GB ( 海力士 DDR4 2133MHz )
主硬盘& & & & 三星 NVMe SSD 960 ( 512 GB / 固态硬盘 )
显卡& & & & AMD Radeon&&RX 480 Graphics ( 8 GB / AMD )
显示器& & & & 戴尔 DELA05F DELL U2311H ( 23.1 英寸&&)
声卡& & & & AMD High Definition Audio 控制器
网卡& & & & 英特尔 I211 Gigabit Network Connection / 技嘉
UID570059主题阅读权限70帖子精华2积分6374金钱12129 荣誉8 人气392 在线时间4747 小时评议0
Lv.7游侠白金会员, 积分 6374, 距离下一级还需 8626 积分
帖子精华2积分6374金钱12129 荣誉8 人气392 评议0
明显是没电了,要不是COMS电池的接口被玩坏了,仔细检查一下那接口吧
UID782279主题阅读权限20帖子精华0积分558金钱4322 荣誉0 人气1 在线时间1683 小时评议0
头像被屏蔽
帖子精华0积分558金钱4322 荣誉0 人气1 评议0
提示: 作者被禁止或删除 内容自动屏蔽
2014年优秀版主勋章
2014年优秀版主勋章
游侠元勋版主
任职满72个月
元老版主勋章
任职满36个月
任职满12个月
资深版主勋章
任职满24个月
白金会员勋章
用户积分达到6000
发帖数达到10000
Powered by