欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

sqlserver 中group by的用法

程序员文章站 2024-02-09 08:37:22
...

欢迎进入Windows社区论坛,与300万技术人员互动交流 >>进入 每个谓词将组特性(如 AVG(SALARY))与下列之一进行比较该组的另一个特性 例如: HAVING AVG(SALARY) 2 * MIN(SALARY) 常数 例如: HAVING AVG(SALARY) 20000 例如,下列查询寻找雇员数超

欢迎进入Windows社区论坛,与300万技术人员互动交流 >>进入

  每个谓词将组特性(如 AVG(SALARY))与下列之一进行比较该组的另一个特性 例如: HAVING AVG(SALARY) > 2 * MIN(SALARY) 常数

  例如: HAVING AVG(SALARY) > 20000

  例如,下列查询寻找雇员数超过 4 的部门的最高和最低薪水:

  复制代码代码示例: SELECT WORKDEPT, MAX(SALARY)AS MAXIMUM, MIN(SALARY) AS MINIMUM

  FROM EMPLOYEE

  GROUP BY WORKDEPT

  HAVING COUNT(*) > 4 ORDER BY WORKDEPT

  结果:

  WORKDEPT MAXIMUM MINIMUM

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

  D11 32250.00 18270.00

  D21 36170.00 17250.00

  E11 29750.00 15340.00

  有可能(虽然很少见)查询有 HAVING 子句但没有 GROUP BY 子句。在此情况下,DB2 将整个表看作一个组。因为该表被看作是单个组,所以最多可以有一个结果行。如果 HAVING 条件对整个表为真,则返回选择的结果(该结果必须整个由列函数组成);否则不返回任何行。 官方讲是按组操作, 或者好理解点就是按类操作。

  通过如下的例子,加深你的理解。

  表如下:

  复制代码代码示例: ID 名称 仓库 数量

  01 西瓜 一号 10

  02 西瓜 二号 30

  03 大米 一号 30

  04 苹果 一号 40

  05 苹果 二号 45

  06 苹果 三号 5

  语句:

  复制代码代码示例:Select name,Sun(price) From 表 Group By name

  将返回各种商品的总数量,而不管是哪个仓库的

  结果:

  西瓜,40

  大米,30

  苹果,90

[1] [2]

sqlserver 中group by的用法