微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数据库 – MySQL中的加权平均计算?

我目前正在使用以下查询获取一些数字:
SELECT gid,count(gid),(SELECT cou FROM size WHERE gid = infor.gid)       
FROM infor 
WHERE id==4325 
GROUP BY gid;

我目前在这个阶段得到的输出如下:

+----------+-----------------+---------------------------------------------------------------+
| gid      | count(gid)      | (SELECT gid FROM size WHERE gid=infor.gid)                    |
+----------+-----------------+---------------------------------------------------------------+
|       19 |               1 |                                                            19 | 
|       27 |               4 |                                                            27 | 
|      556 |               1 |                                                           556 | 
+----------+-----------------+---------------------------------------------------------------+

我试图计算加权平均,即

(1*19+4*27+1*556)/(19+27+556)

有没有办法使用单个查询

解决方法

使用:
SELECT SUM(x.num * x.gid) / SUM(x.cou)
  FROM (SELECT i.gid,COUNT(i.gid) AS num,s.cou
          FROM infor i
     LEFT JOIN SIZE s ON s.gid = i.gid
         WHERE i.id = 4325
      GROUP BY i.gid) x

原文地址:https://www.jb51.cc/mssql/75576.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐