我目前正在使用以下查询来获取一些数字:
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 举报,一经查实,本站将立刻删除。