You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SELECT查询:按产品类别统计数量与平均成本的实现

解决按产品类别统计数量与平均成本的SQL查询问题

嘿,我来帮你搞定这个SQL查询的问题!你想要按类别分组统计产品数量和平均成本,每个类别只显示一行,核心是要用聚合函数搭配GROUP BY子句,你原来的语句在函数用法和分组逻辑上有几个小问题,我给你一步步理清楚:

错误点分析

你写的sum category和average category存在这些问题:

  • 统计产品数量应该用COUNT()而不是SUM()(SUM是对数值求和,COUNT才是统计行数)
  • 标准SQL里计算平均值的函数是AVG(),不是average
  • 最关键的:要按类别分组计算聚合值,必须加上GROUP BY Category,否则数据库不知道如何把数据归类到各个类别中

正确的查询语句

假设你的表名叫Products,成本对应的列名叫Cost,正确的SQL应该是这样的:

SELECT 
    Category AS '类别',
    COUNT(*) AS '数量',
    AVG(Cost) AS '平均价格'
FROM Products
GROUP BY Category;

语句细节解释

  • COUNT(*):统计每个类别下的产品总数量,*表示统计该类别下的所有行(只要属于这个类别就计数)
  • AVG(Cost):计算当前类别下所有产品的成本平均值
  • GROUP BY Category:告诉数据库按照Category列的值进行分组,每个不同的类别会生成一行结果
  • AS '别名':用来设置列的显示名称,和你想要的“类别、数量、平均价格”完全对应

示例输出效果

如果你的表有这些数据:

CategoryCost
帽子8
帽子12
鞋子50
鞋子70

执行上面的查询后,会得到:

类别数量平均价格
帽子210
鞋子260

这样就完全符合你想要的每个类别一行、显示数量和平均成本的需求啦!

内容的提问来源于stack exchange,提问作者user9602781

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:06:21