php - mySQL AVG - 一种为 AVG 合并两个结果的方法

标签 php mysql average

我正在尝试获取我的指标的平均交互次数,但此查询获取的是那些进行了交互的人的平均交互次数(那些在 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/

相关文章:

mysql - 如何解决这个特定的 SQL 查询?

php - 需要数据库架构疯狂的最佳方法

php - MySQL 在不同的列上两次连接同一个表而不会发生冲突

php - 将 MySQL 中的数据显示到 bootstrap 模式中(无 ajax)

python - 简单滚动平均值 - 前几个值

mysql - 获取另一个mysql的列和值的平均值

excel - 是否可以计算多行不同值的平均值并在 Excel 上的新工作表的一行上生成结果?

php - 将数据集显示为单个帖子

PHP session 变量

EC2 上的 MySQL 镜像