我正在尝试使用 mySQL 在指定日期范围内获取字段“权重”的每周平均值。此处工作中的扳手是重量在某些记录中以 Kg 为单位,而在其他记录中以 lbs 为单位。表中还有一个标志 (unitsMode),用于指定权重是公制还是英制。所以我需要根据unitsMode对权重字段进行计算——我正在使用CASE。但现在我不能做平均,或者说不知道“在哪里”做平均。我将其作为存储过程执行,当前代码如下:
PROCEDURE `weeklyweighttest`(IN uId INTEGER, IN rangeStart DATE, IN rangeEnd DATE)
BEGIN
select weight,unitsMode, floor(DATEDIFF(entryDate,curdate())/7) as weeks_ago, CASE unitsMode
WHEN 1 THEN truncate((weight/2.2),2)
WHEN 0 THEN truncate(weight,2)
END AS calcWeight
FROM `mydatabasetable` WHERE userId=uId AND entryDate >= rangeStart AND entryDate <= rangeEnd
GROUP BY floor(DATEDIFF(entryDate,curdate())/7);
END
非常感谢您在这里的任何输入