我正在尝试获取我的指标的平均交互次数,但此查询获取的是那些进行了交互的人的平均交互次数(那些在 metricsActions 中的人只有在他们已经交互时才会存在,他们的 metricsID 仍然存在于 指标
表)。
所以,我想知道如何获得所有这些用户的平均值。我可以做两个查询,但我将如何对这两个结果进行平均?是否可以合并?
SELECT AVG(`instances`) FROM (SELECT m.`metricID`, COUNT(mc.`metricAction`) as `instances` FROM `metricActions` mc LEFT JOIN `metrics` m ON m.`metricID` = mc.`metricID` WHERE m.`clientID` = '10412' AND `type` = '2' AND GROUP BY mc.`metricID` ORDER BY `instances` DESC ) as `temp`
最佳答案
您应该以相反的方式使用 LEFT JOIN
:
SELECT AVG(`instances`)
FROM (
SELECT m.`metricID`, COUNT(mc.`metricAction`) as `instances`
FROM `metrics` m
LEFT JOIN
`metricActions` mc
ON mc.`metricID` = m.`metricID`
AND mc.`type` = '2'
WHERE m.`clientID` = '10412'
GROUP BY
m.`metricID`
) as `temp`
关于php - mySQL AVG - 一种为 AVG 合并两个结果的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5514840/