转载自品略图书馆 http://www.pinlue.com/article/2020/03/3100/0210073883113.html

数据库中sum的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库中sum的用法的用法,希望对你们有用。

  数据库中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

  -----------

  5

  SELECT COUNT(Value) FROM Table_1

  -----------

  4

  SELECT COUNT(DISTINCT Value) FROM Table_1

  -----------

  2

  SUM返回表达式中所有值的和或仅非重复值的和。SUM 只能用于数字列。空值将被忽略

  ID          Value

  ----------- -----------

  1           1

  2           2

  3           3

  4           4

  5           NULL

  6           5

  7           5

  SELECT SUM(Value) From Table_1

  -----------

  20

  SELECT SUM(DISTINCT Value) From Table_1

  -----------

  15

  以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]

  GO

  /****** Object:  Table [dbo].[Employees]    Script Date: 01/13/2012 22:57:44 ******/

  SET ANSI_NULLS ON

  GO

  SET QUOTED_IDENTIFIER ON

  GO

  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]

  GO

  ALTER TABLE [dbo].[Employees]  WITH NOCHECK ADD  CONSTRAINT [FK_Employees_Employees] FOREIGN KEY([ReportsTo])

  REFERENCES [dbo].[Employees] ([EmployeeID])

  GO

  ALTER TABLE [dbo].[Employees] CHECK CONSTRAINT [FK_Employees_Employees]

  GO

  ALTER TABLE [dbo].[Employees]  WITH NOCHECK ADD  CONSTRAINT [CK_Birthdate] CHECK  (([BirthDate] < getdate()))

  GO

  ALTER TABLE [dbo].[Employees] CHECK CONSTRAINT [CK_Birthdate]

  GO

  USE [Northwind]

  GO

  /****** Object:  Table [dbo].[Orders]    Script Date: 01/13/2012 23:02:09 ******/

  SET ANSI_NULLS ON

  GO

  SET QUOTED_IDENTIFIER ON

  GO

  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]

  GO

  ALTER TABLE [dbo].[Orders]  WITH NOCHECK ADD  CONSTRAINT [FK_Orders_Customers] FOREIGN KEY([CustomerID])

  REFERENCES [dbo].[Customers] ([CustomerID])

  GO

  ALTER TABLE [dbo].[Orders] CHECK CONSTRAINT [FK_Orders_Customers]

  GO

  ALTER TABLE [dbo].[Orders]  WITH NOCHECK ADD  CONSTRAINT [FK_Orders_Employees] FOREIGN KEY([EmployeeID])

  REFERENCES [dbo].[Employees] ([EmployeeID])

  GO

  ALTER TABLE [dbo].[Orders] CHECK CONSTRAINT [FK_Orders_Employees]

  GO

  ALTER TABLE [dbo].[Orders]  WITH NOCHECK ADD  CONSTRAINT [FK_Orders_Shippers] FOREIGN KEY([ShipVia])

  REFERENCES [dbo].[Shippers] ([ShipperID])

  GO

  ALTER TABLE [dbo].[Orders] CHECK CONSTRAINT [FK_Orders_Shippers]

  GO

  ALTER TABLE [dbo].[Orders] ADD  CONSTRAINT [DF_Orders_Freight]  DEFAULT (0) FOR [Freight]

  GO

说说数据库中sum的用法相关推荐

  1. 数据库中sum的用法浅述

    转自:微点阅读  https://www.weidianyuedu.com 数据库中sum的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库中sum的用法的用法,希望对你们有用. 数据库中sum的 ...

  2. 数据库中sum的用法

    转自:微点阅读(www.weidianyuedu.com)微点阅读 - 范文大全 - 免费学习知识的网站 数据库中sum的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库中sum的用法的用法,希望 ...

  3. 数据库中sum的详细用法介绍

    转自:微点阅读  https://www.weidianyuedu.com 数据库中sum的用法的用法你知道吗?下面微点阅读小编就跟你们详细介绍下数据库中sum的用法的用法,希望对你们有用. 数据库中 ...

  4. Oracle数据库中SQL语句用法(一)

    Copyright © 2019 @Linyer. All Rights Reserved 下接Oracle数据库中SQL语句用法(二)[点击以查看] 目录 第1章:编写基本的SQL SELECT语句 ...

  5. full join 和full outer join_带你了解数据库中JOIN的用法

    前言 欢迎关注公众号:Coder编程 获取最新原创技术文章和相关免费学习资料,随时随地学习技术知识! 本章主要介绍数据库中Join的的用法,也是我们在使用数据库时非常基础的一个知识点.本次会介绍数据库 ...

  6. mysql in从数据库取数_MySQL数据库中 where in 用法详解

    本文主要向大家介绍了MySQL数据库中 where in 用法详解,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 这里分两种情况来介绍 WHERE column IN (valu ...

  7. 数据库中top的用法

    转自:微点阅读(www.weidianyuedu.com)微点阅读 - 范文大全 - 免费学习知识的网站 数据库中top的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库中top的用法的用法,希望 ...

  8. mysql 中default什么意思_数据库中default的用法正确使用方法

    数据库中default的用法的正确使用方法你清楚吗,今天学习啦小编就跟大家详细介绍下数据库中default的用法,希望能帮到大家. 数据库中default的用法的用法 SQL Server数据库def ...

  9. top在mysql中的意思_数据库中top的用法

    数据库中top的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库中top的用法的用法,希望对你们有用. 数据库中top的用法的用法如下: 在编写程序中,我们可能遇到诸如查询最热门的5篇文章或返回满 ...

最新文章

  1. 【毕业求职季】-听说你想去大厂看学妹,带你看看阿里后端实习面经长啥样?
  2. c语言变量radius数据类型,c语言数据类型
  3. if的作用域问题 *输出1~6的随机数*
  4. 动点移动轨迹,猜猜这是曲线还是直线?
  5. linux 系统盘无法ls,系统故障排除
  6. vscode生成vue模板快捷键_VSCode一键生成.vue模版
  7. 【SCIR笔记】ACL20 让模型“事半功倍”,探究少样本序列标注方法
  8. Netlink0004 --- 多播机制的用法
  9. html浮窗音乐播放器插件,墨涩网 - WordPress浮窗音乐播放器Floating Window Music Player V3.2.6——墨涩网...
  10. 【车标识别】基于SIFT算子的车标识别算法matlab仿真
  11. Python图像灰度化处理
  12. 机器学习笔记最大熵之NER
  13. Mac Sublime Text安装可以使xml格式化的插件
  14. Unity Recorder的使用讲解
  15. 重定向--Linux bash
  16. 计算机网络atm功能,现代计算机网络原理4ATM交换技术.ppt
  17. MATLAB App Designer 计算器的设计
  18. 神经风格转移:Anaconda快速搭建DL框架学梵高(Van Gogh)绘画Ubuntu16.04 CPUGPU版
  19. 注意力机制在推荐模型中的应用——AFM、DIN、DIEN
  20. 设备上报二进制数据在 IoT 平台解析实践

热门文章

  1. itext根据模版生成PDF与合并多个PDF以及向已存在PDF增加水印设置权限等操作
  2. 使用霍金团队选择的服务器是一种什么感受
  3. 【XSY2786】Mythological VI 数学
  4. busybox 安装问题解决
  5. 河北大学计算机男女比例,全国高校男女比例排行榜出炉!黑龙江省这所学校女生多……...
  6. 权利人的变更费用是多少?
  7. 今年的天猫双11,和往年有什么不一样?
  8. 这些年掘金上的优质前端文章,篇篇经典,一次打包带走!
  9. 【海洋女神原创】一个完整的Installshield安装程序实例—艾泽拉斯之海洋女神出品(一)---基本设置一...
  10. 百度人工智能如何走向千家万户?陆奇的答案是度秘