sqlserver 中group by的用法

WBOY
WBOYオリジナル
2016-06-07 15:51:341302ブラウズ

欢迎进入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的用法

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。