首页 > 其他分享 >GROUP BY 和 HAVING 子句(看完就会)

GROUP BY 和 HAVING 子句(看完就会)

时间:2024-08-03 17:28:07浏览次数:10  
标签:customer 03 GROUP 分组 子句 HAVING

GROUP BY 和 HAVING 子句用于对查询结果进行分组和过滤,它们通常一起使用,但也可以单独使用。

GROUP BY 子句:

  • GROUP BY 子句用于将查询结果根据一个或多个列进行分组
  • 它将具有相同分组列值的行组合在一起,形成一个组。
  • GROUP BY 子句通常与聚合函数(如 SUMAVGCOUNTMAXMIN)一起使用,以便对每个组进行计算。

语法:

SELECT column1, column2, ...
FROM table_name
WHERE condition
GROUP BY column1, column2, ...;

示例:

SELECT customer_city, COUNT(*) AS total_customers
FROM customers
GROUP BY customer_city;

假设 customers 表数据如下:

customer_idcustomer_namecustomer_city
1张三Beijing
2李四Shanghai
3王五Shanghai
4赵六Beijing
5孙七Shenzhen

返回结果:

customer_citytotal_customers
Beijing2
Shanghai2
Shenzhen1

 按 customer_city 列分组,并统计每个城市中的客户数量

HAVING 子句:

  • HAVING 子句用于过滤分组后的结果集
  • 它类似于 WHERE 子句,但 HAVING 子句用于过滤组,而 WHERE 子句用于过滤行。
  • HAVING 子句通常与聚合函数一起使用,以便对组进行过滤。

语法:

SELECT column1, column2, ...
FROM table_name
WHERE condition
GROUP BY column1, column2, ...
HAVING condition;

示例:

SELECT customer_city, COUNT(*) AS total_customers
FROM customers
GROUP BY customer_city
HAVING COUNT(*) > 1;

返回结果:

customer_citytotal_customers
Beijing2
Shanghai2

 按 customer_city 列分组,并统计每个城市中的客户数量,只返回客户数量大于 1 的城市

SELECT order_date, COUNT(*) AS total_orders
FROM orders
GROUP BY order_date
HAVING COUNT(*) > 2;

假设 orders 表数据如下:

order_idorder_datecustomer_id
1012023-03-011
1022023-03-012
1032023-03-013
1042023-03-024
1052023-03-025
1062023-03-036

返回结果:

order_datetotal_orders
2023-03-013

 按 order_date 列分组,并统计每个日期的订单数量,只返回订单数量大于 2 的日期

总结:

  • GROUP BY 子句用于将查询结果进行分组,以便对每个组进行计算。
  • HAVING 子句用于过滤分组后的结果集,以便只返回符合条件的组。
  • GROUP BY 和 HAVING 子句通常一起使用,但也可以单独使用。

注意:

  • HAVING 子句必须放在 GROUP BY 子句之后。
  • 在 HAVING 子句中可以使用聚合函数,但在 WHERE 子句中不能使用聚合函数。

求点赞!!!求点赞!!!求点赞!!!

标签:customer,03,GROUP,分组,子句,HAVING
From: https://blog.csdn.net/weixin_63698171/article/details/140893134

相关文章

  • ORDER BY 子句
    ORDERBY 子句用于对查询结果进行排序。它允许你根据一个或多个列对结果集进行升序或降序排序。ORDERBY关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,可以使用DESC关键字。ASC:表示按升序排序。DESC:表示按降序排序。        1:升序排序(ASC......
  • GroupMamba实战:使用GroupMamba实现图像分类任务(一)
    摘要状态空间模型(SSM)的最新进展展示了在具有次二次复杂性的长距离依赖建模中的有效性能。GroupMamba解决了将基于SSM的模型扩展到计算机视觉领域的挑战,特别是大型模型尺寸的不稳定性和低效性。GroupMamba在ImageNet-1K的图像分类、MS-COCO的目标检测和实例分割以及ADE2OK的......
  • 有没有办法根据 Pandas GroupBy 的计数在 2 个数据帧之间重复分配值?
    我有两个结构相同但形状和值不同的Pandas数据框:importpandasaspddataframe_1=pd.DataFrame({'customer_id':['id1','id2','id3','id4','id5','id6'],'gender':[......
  • Pandas GroupBy - 仅显示具有多个唯一特征值的组
    我有一个DataFramedf_things看起来像这样,我想在训练之前预测分类的质量ABCCLASS-----------------------al1bal1cal1Shipal1bal1cal1Shipal1bal2cal2Shipal2bal2cal2Cowal3bal3cal3Caral1bal2cal3C......
  • 如何使用 group by 对 pandas 数据框进行排序
    我正在处理类似于下面示例的数据框:importpandasaspdimportnumpyasnpnp.random.seed(0)np.random.seed(0)df=pd.DataFrame({'date':np.tile(['2024-05-01','2024-06-01'],4),'State':np.repeat(['fl&#......
  • 通过 python 获取 android.view.ViewGroup 中的子项
    是否可以使用python、adb或任何库从android.view.ViewGroup获取子元素或文本,但不需要java和kotlin?我正在尝试使用python自动化android模拟器。与模拟器的交互通过adb进行。当我得到屏幕转储时,我看到我需要的元素是android.view.ViewGroup,并且text和content-......
  • RuntimeError:给定 groups=1,预期权重在维度 0 处至少为 1,但在 YOLOv8 模型训练中得到的
    我正在尝试使用yolov8n-pose.pt预训练模型来训练YOLOv8模型,并在config.yaml中使用以下配置:#Datapath:C:\Users\Denis\OneDrive\Documents\Project\WorkoutAssistant\datatrain:images/train#trainimages(relativeto'path')val:images/val#valima......
  • netty入门-3 EventLoop和EventLoopGroup,简单的服务器实现
    文章目录EventLoop和EventLoopGroup服务器与客户端基本使用增加非NIO工人NioEventLoop处理普通任务与定时任务结语EventLoop和EventLoopGroup二者大概是什么这里不再赘述,前一篇已简述过。不理解也没关系。下面会简单使用,看了就能明白是什么这篇文章只说NioEvent......
  • 对 groupby 求和并在 groupby 之前添加或子行并在 groupby 之后添加行
    我有一个数据框,我想获得每个[组]的求和值,其中一行值在该组之前(“减去”和“添加”),在该组之后一行(“BEGUZE_UE”)。(一个组可以包含不同的字符串,UE_1并不重要)。但我在“m_days”中得到了一些错误的结果。感谢您的帮助。DataFrame:data={'ATEXT':['','CT','RT','',''......
  • 待迁移:使用el-radio-group时,内部选项默认选中了
    参考文章链接原来写的是:<el-col:span="24"><el-form-itemlabel="状态"prop="transportType"><el-radio-groupv-model="state.editData.transportType"><el-radio:value="1">预售配送</el......