zoukankan      html  css  js  c++  java
  • SQL 必知必会·笔记<8>分组数据

    1. 使用GROUP BY子句创建分组

    示例:

    SELECT vend_id, COUNT(*) AS num_prods
    FROM Products
    GROUP BY vend_id;

    注意

    • GROUP BY 子句可以包含任意数目的列,因而可以对分组进行嵌套,更细致地进行数据分组。
    • 如果分组列中包含具有NULL 值的行,则NULL 将作为一个分组返回。如果列中有多行NULL 值,它们将分为一组。
    • GROUP BY 子句必须出现在WHERE 子句之后,ORDER BY 子句之前。

    2. 使用HAVING过滤分组

    除了能用GROUP BY 分组数据外,SQL 还允许过滤分组,规定包括哪些 分组,排除哪些分组

    示例:

    SELECT cust_id, COUNT(*) AS orders
    FROM Orders
    GROUP BY cust_id
    HAVING COUNT(*) >= 2;

    说明:HAVING 和WHERE 的差别

    WHERE 在数据分组前进行过滤,HAVING 在数 据分组后进行过滤。这是一个重要的区别,WHERE 排除的行不包括在 分组中。这可能会改变计算值,从而影响HAVING 子句中基于这些值 过滤掉的分组。

    3. 分组和排序

    提示:不要忘记ORDER BY

    一般在使用GROUP BY 子句时,应该也给出ORDER BY 子句。这是保 证数据正确排序的唯一方法。千万不要仅依赖GROUP BY 排序数据。

    4. SELECT 子句顺序

  • 相关阅读:
    poj 3616 Milking Time
    poj 3176 Cow Bowling
    poj 2229 Sumsets
    poj 2385 Apple Catching
    poj 3280 Cheapest Palindrome
    hdu 1530 Maximum Clique
    hdu 1102 Constructing Roads
    codeforces 592B The Monster and the Squirrel
    CDOJ 1221 Ancient Go
    hdu 1151 Air Raid(二分图最小路径覆盖)
  • 原文地址:https://www.cnblogs.com/IPrograming/p/3280979.html
Copyright © 2011-2022 走看看