加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 08:43:26 所属栏目:MsSql教程 来源:网络整理
导读:我目前正在使用以下查询来获取一些数字: SELECT gid,count(gid),(SELECT cou FROM size WHERE gid = infor.gid) FROM infor WHERE id==4325 GROUP BY gid; 我目前在这个阶段得到的输出如下: +----------+-----------------+-------------------------------
我目前正在使用以下查询来获取一些数字:
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读