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

sql题目练习——聚合函数

题目:
有 products 表,包含 product_id(产品编号,主键),product_name(产品名称),category(类别),price(价格),quantity(库存数量)。编写 SQL 查询每个类别的产品数量、平均价格和总库存数量,只显示产品数量大于 5 的类别信息,结果按平均价格升序排列。
解答:
按照category进行分组,统计不同组别的个数和其他数据(涉及到几个聚合函数的使用)
SELECT category, COUNT(product_id) AS product_count, AVG(price) AS average_price, SUM(quantity) AS total_quantity
FROM products
GROUP BY category
HAVING product_count > 5
ORDER BY average_price ASC;
相关知识点:

  1. 聚合函数
    COUNT():用于统计满足条件的行数。在 COUNT(product_id) 中,通过统计 product_id 的数量,实现对每个类别下产品数量的统计。因为 product_id 是主键,每行都唯一,所以能准确统计出每个类别中的产品个数。
    AVG():计算数值列的平均值。AVG(price) 用于计算每个类别中产品价格的平均值,通过对 price 列的数据进行平均计算,得出每个类别产品的平均价格。
    SUM():对数值列进行求和。SUM(quantity) 将每个类别下产品的 quantity(库存数量)相加,得到每个类别的总库存数量。
  2. GROUP BY 子句
    功能:GROUP BY category 按照 category(类别)对数据进行分组。它将 products 表中的数据依据 category 列的值进行划分,相同类别的数据归为一组。这样聚合函数就会分别对每个分组进行计算,而不是对整个表进行计算,从而得出每个类别的统计信息。例如,会分别计算电子产品类、服装类等各个类别的产品数量、平均价格和总库存数量。
  3. HAVING 子句
    作用:HAVING product_count > 5 用于对分组后的结果进行筛选。与 WHERE 子句不同,WHERE 是在分组之前对行进行筛选,而 HAVING 是在分组和聚合计算完成后,对分组结果进行筛选。这里筛选出产品数量大于 5 的类别,确保最终结果集中只包含满足此条件的类别信息。
  4. ORDER BY 子句
    功能:ORDER BY average_price ASC 按照平均价格(average_price,这是 AVG(price) 计算得出的别名)对查询结果进行升序排列。使最终显示的类别信息按照平均价格从低到高的顺序呈现,方便查看和分析数据。如果省略 ASC,默认也是升序排列,但显式写出可增强代码可读性。
http://www.dtcms.com/a/478841.html

相关文章:

  • 鄂尔多斯网站开发广东深圳龙岗区天气
  • 运用photoshop设计网站首页北京vi设计公司怎么样
  • Day61 Linux内核编译、裁剪与驱动开发基础
  • 哪个网站可以做ppt模板深圳网站设计公司费用是
  • 中国十大发布信息网站排名2021年9月重大新闻
  • VBA数据结构性能革命:Dictionary与Collection的终极对决
  • 从 0 到 1 理解读者写者问题与读写锁:操作系统并发编程入门
  • 框架--Spring
  • 贵州网站建设营销公司免费推广网站入口202
  • 10.9 了解鸿蒙生态
  • 【win32】FFmpeg 硬件解码器
  • 网站怎么做留言板块阿玛尼手表官方网站查询正品
  • Flutter 跨平台文件上传 - GetX + ImagePicker + Dio 实现
  • 实现提供了完整的 Flutter Web 文件上传解决方案
  • 黑群晖建设个人网站免费制作链接的软件
  • 网站设计毕业设计任务书网站怎样做301跳转
  • 互联网从业者的数据能力突围:从焦虑到破局的能力成长路径
  • 2025三掌柜赠书活动第三十八期 EDR逃逸的艺术:终端防御规避技术全解
  • 怎么在工商网站做实名认证企业网站的搭建流程
  • 第14讲:深入理解指针(4)——函数指针与“程序跳转术”
  • 湖北省建设网站首页公众平台网站开发哪家好
  • 重庆最有效的网站推广腾讯云搭建wordpress
  • x86、arm、rsc-v指令集架构,指令集、OS、应用3者的关系
  • 中科米堆CASAIM自动化三维测量实现注塑模具快速尺寸测量
  • ES6是什么
  • 课程网站开发 预算温州网络公司哪家最好
  • WebSocket 与 SSE 的区别,实际项目中应该怎么使用
  • 网站建设推广行业网站制作 江西
  • GPU 嗡嗡作响! Elastic 推理服务( EIS ):为 Elasticsearch 提供 GPU 加速推理
  • 前端碎碎念笔记:JavaScript 对象的封装与抽象