我想在sql中使用AVG函数来返回某些值的工作平均值(即基于上周而不是整体平均值).我有两个值,我正在计算,体重和休息HR(心率).我为每个语句都有以下sql语句:
SELECT AVG( weight ) AS average
FROM stats
WHERE userid='$userid'
ORDER BY date DESC LIMIT 7
SELECT AVG( restingHR ) AS average
FROM stats
WHERE userid='$userid'
ORDER BY date DESC LIMIT 7
Run Code Online (Sandbox Code Playgroud)
我得到的重量值是82.56,但它应该是83.35 这不是一个大的错误,当我使用它时我正在舍入它所以它不是太大的交易.
然而,对于restingHR我得到45.96当它应该是57.57这是一个巨大的差异.
我不明白为什么会这么错.任何帮助深表感谢.
谢谢
使用子查询将选择行与计算平均值分开:
SELECT AVG(weight) average
FROM (SELECT weight
FROM stats
WHERE userid = '$userid'
ORDER BY date DESC
LIMIT 7) subq
Run Code Online (Sandbox Code Playgroud)