返回介绍

分组

发布于 2024-08-17 15:49:00 字数 1481 浏览 0 评论 0 收藏 0

group by

  • group by 子句将记录分组到汇总行中。
  • group by 为每个组返回一个记录。
  • group by 通常还涉及聚合 countmaxsumavg 等。
  • group by 可以按一列或多列进行分组。
  • group by 按分组字段进行排序后, order by 可以以汇总字段来进行排序。

分组

SELECT cust_name, COUNT(cust_address) AS addr_num
FROM Customers GROUP BY cust_name;

分组后排序

SELECT cust_name, COUNT(cust_address) AS addr_num
FROM Customers GROUP BY cust_name
ORDER BY cust_name DESC;

having

  • having 用于对汇总的 group by 结果进行过滤。
  • having 一般都是和 group by 连用。
  • wherehaving 可以在相同的查询中。

使用 WHERE 和 HAVING 过滤数据

SELECT cust_name, COUNT(*) AS num
FROM Customers
WHERE cust_email IS NOT NULL
GROUP BY cust_name
HAVING COUNT(*) >= 1;

having vs where

  • where :过滤过滤指定的行,后面不能加聚合函数(分组函数)。 wheregroup by 前。
  • having :过滤分组,一般都是和 group by 连用,不能单独使用。 havinggroup by 之后。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文