当前位置: 首页 > article >正文

SQL 使用带聚集函数的联结

聚集函数用于汇总数据,通常用于从一个表中计算统计信息,但也可以与联结一起使用。以下是一个例子,展示如何使用聚集函数统计每个顾客的订单数。

示例 1:使用 COUNT() 函数与 INNER JOIN

假设我们需要检索所有顾客及每个顾客所下的订单数,以下 SQL 查询使用 COUNT() 函数完成此任务:

SELECT Customers.cust_id,
       COUNT(Orders.order_num) AS num_ord
FROM Customers
INNER JOIN Orders ON Customers.cust_id = Orders.cust_id
GROUP BY Customers.cust_id;

输出:

cust_id       num_ord
----------    --------
1000000001    2
1000000003    1
1000000004    1
1000000005    1

分析:
该查询使用 INNER JOINCustomersOrders 表连接,GROUP BY 子句根据顾客ID对数据进行分组。COUNT(Orders.order_num) 聚合函数统计每个顾客的订单数量,并将其作为 num_ord 返回。

示例 2:使用 COUNT() 函数与 LEFT OUTER JOIN

聚集函数也可以与其他类型的联结结合使用,下面是一个使用左外部联结 (LEFT OUTER JOIN) 的例子,展示如何包含没有订单的顾客:

SELECT Customers.cust_id,
       COUNT(Orders.order_num) AS num_ord
FROM Customers
LEFT OUTER JOIN Orders ON Customers.cust_id = Orders.cust_id
GROUP BY Customers.cust_id;

输出:

cust_id       num_ord
----------    --------
1000000001    2
1000000002    0
1000000003    1
1000000004    1
1000000005    1

分析:
此查询使用 LEFT OUTER JOIN,它会返回所有顾客的数据,包括那些没有任何订单的顾客(如顾客 1000000002)。与 INNER JOIN 不同,使用外部联结时,未匹配的订单数量将显示为 0


总结

  • 聚集函数(如 COUNT())通常用于计算数据的汇总值,可以结合不同类型的联结来获取更全面的信息。
  • INNER JOIN 仅返回在两个表中都有匹配项的记录,适用于需要排除没有相关数据的情况。
  • LEFT OUTER JOIN 返回左表中的所有记录,即使右表中没有匹配项,也会显示为 NULL 或 0,适用于需要包含所有记录的情况。

通过掌握聚集函数与联结的结合使用,您可以高效地从多个表中提取和汇总数据,以满足更复杂的查询需求。


http://www.kler.cn/a/448352.html

相关文章:

  • 江苏计算机专转本 技能Mysql知识点总结(二)
  • Python从0到100(七十八):神经网络--从0开始搭建全连接网络和CNN网络
  • MySQL深度解析:高效查询优化与实战案例
  • YOLO-World:Real-Time Open-Vocabulary Object Detection
  • 机器学习基础算法 (二)-逻辑回归
  • 西游记战力排名、笔记等
  • 【多维 DP】力扣3250. 单调数组对的数目 I
  • 情报信息收集能力
  • HR/TA/HRBP的关系
  • DDoS工作原理
  • YOLOv9-0.1部分代码阅读笔记-lion.py
  • workman服务端开发模式-应用开发-后端api推送修改一
  • leetcode之hot100---48旋转图像(C++)
  • 最新ubuntu20.04安装docker流畅教程
  • 关于UDP缓冲区和丢包统计
  • 前端配置跨域的详细指南
  • ReactPress 1.6.0:重塑博客体验,引领内容创新
  • Go使用sqlx操作MySQL完整指南
  • 【集合】Java 8 - Stream API 17种常用操作与案例详解
  • Vue 单表 CRUD模板 前端
  • LeetCode hot100-93
  • stm32 查找进硬件错误方法
  • 12.19问答解析
  • 常用网络协议简述
  • Java-web安全01
  • Python小游戏开发:实现带道具加成的经典打砖块游戏