转自:微点阅读(www.weidianyuedu.com)微点阅读 - 范文大全 - 免费学习知识的网站

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

    转载自品略图书馆 http://www.pinlue.com/article/2020/03/3100/0210073883113.html 数据库中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. 微软、IBM们的中国研究院是怎样一步步“躺平”的?
  2. webbrowser 百度列表点击_前嗅ForeSpider采集教程:关键词的「检索列表」采集「检索结果」...
  3. 蔡超:入门 Go 语言必须跨越的五个思维误区
  4. ubuntu切换python,以及切换python后相关包的管理
  5. YbtOJ#20068-[NOIP2020模拟赛B组Day5]连通子图【构造】
  6. JavaScript流程分支结构(1)
  7. java 标识变量_Java变量与数据类型之一:Java编程规范,关键字与标识符
  8. L1-035 情人节 (15 分)—团体程序设计天梯赛
  9. creo减速器建模实例,减速箱proE整体及零件图
  10. 货币代码php,在PHP中获取货币符号
  11. 用ffmpeg将mp3转为wav
  12. Linux修改文件出现错误E45:“readonly” option is set(add ! to override)退出不了vim
  13. Windows丢失缺少api-ms-win-crt-process-l1-1-0.dll解决方法
  14. 2022-2028全球与中国交通信号控制系统市场现状及未来发展趋势
  15. OsgEarth —— 笔记9 - 飞机加入跟踪半透明圆圈标识(附源码)
  16. java(maven)链接neo4j
  17. PDCP 功能与基本概念
  18. 如何有效管理自己电脑里的文件
  19. 安装BackTrack5 R3
  20. 2021 ICPC沈阳 J.Luggage Lock(bfs,模拟)

热门文章

  1. 用Pymol的pythonAPI来获取原子所属残基的信息
  2. 生态透水砖加工制作技术资料配方方法
  3. LeeCode 1379. 找出克隆二叉树中的相同节点
  4. AttributeError: Can‘t get attribute ‘SPPF‘
  5. CNN卷积中卷积层,卷积核,通道概念及卷积过程详解
  6. 什么是CEO,CFO,CTO.CHO,CMO,CIO,CKO
  7. php青茶什么时候拆,没拆封的茶叶能放几年
  8. 如何删除win7里很多的microsoft 6to4 adapter
  9. k8s中的pv和pvc的区别和联系?什么是pv?什么是pvc?
  10. linux系统题库的答案,Linux操作系统知道题库及答案