Leg*_*end 11 mysql database query-optimization
我目前正在使用以下查询来获取一些数字:
SELECT gid, count(gid), (SELECT cou FROM size WHERE gid = infor.gid)
FROM infor
WHERE id==4325
GROUP BY gid;
Run Code Online (Sandbox Code Playgroud)
我目前阶段得到的输出如下:
+----------+-----------------+---------------------------------------------------------------+
| gid | count(gid) | (SELECT gid FROM size WHERE gid=infor.gid) |
+----------+-----------------+---------------------------------------------------------------+
| 19 | 1 | 19 |
| 27 | 4 | 27 |
| 556 | 1 | 556 |
+----------+-----------------+---------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
我试图计算加权平均值即
(1*19 + 4*27 + 1*556)/(19 + 27 + 556)
有没有办法使用单个查询执行此操作?
OMG*_*ies 14
使用:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9855 次 |
| 最近记录: |