公子小涛 2022-01-05 12:42 采纳率: 40%
浏览 41
已结题

关于#SQL#的问题,如何解决?

做测试题的过程中

SELECT product_id,product_name,product_type,sale_price,
AVG(sale_price) AS sale_price_all
FROM product;

Product表共有8行,使用如下查询语句,得出的只有一行
但是使用如下代码

SELECT product_id,product_name,product_type,sale_price,
(SELECT AVG(sale_price) FROM Product) AS sale_price_all
FROM product;

会得出所有行,没明白为什么会出现这个问题
  • 写回答

1条回答 默认 最新

  • 神仙别闹 2022-01-05 12:52
    关注

    SQL AVG 函数返回数值列的平均值。

    SELECT product_id,product_name,product_type,sale_price,
    AVG(sale_price) AS sale_price_all
    FROM product;
    

    第一个SQL语句因为没有分组,所以查询的是全部的列,针对每列的sale_price字段进行了取平均值,得出的结果也就是sale_price原有的值。

    SELECT product_id,product_name,product_type,sale_price,
    (SELECT AVG(sale_price) FROM Product) AS sale_price_all
    FROM product;
    

    第二个SQL语句相当于增加了一个子查询,所查询的也是全部的列,而sale_price_all显示的内容是全部表中sale_price的平均值,得出的结果是每行的sale_price_all是一致的。

    所以你可能想要实现的功能是,按照某一列字段分组后求平均值,例如

    SELECT product_id,
    AVG(sale_price) AS sale_price_all
    FROM product GROUP BY product_id;
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月12日
  • 已采纳回答 8月4日
  • 创建了问题 1月5日

悬赏问题

  • ¥15 VESTA绘图原子颜色显示异常
  • ¥15 天翼云搭建多ip l2tp
  • ¥15 python实现CAD识图
  • ¥15 如何实现在renpy中创建并应用不同大小尺寸对话框?
  • ¥15 table表格有一列是固定列 滑动到最下面时 固定的那一列有几行没显示出来
  • ¥20 单细胞数据注释时报错
  • ¥15 vscode编译ros找不到头文件,cmake.list文件出问题,如何解决?(语言-c++|操作系统-linux)
  • ¥15 通过AT指令控制esp8266发送信息
  • ¥15 有哪些AI工具提供可以通过代码上传EXCEL文件的API接口,并反馈分析结果
  • ¥15 二维装箱算法、矩形排列算法(相关搜索:二维装箱)