gpt4 book ai didi

PHP Mysql计算日期时间之间的平均值并忽略平均值中的负结果

转载 作者:行者123 更新时间:2023-11-30 00:22:16 24 4
gpt4 key购买 nike

问题:如何执行下面的查询并让它忽略结果中可能为负的任何时间跨度,而不排除其他时间跨度的相关数据? (换句话说,我不能将条件放在 WHERE 子句中,因为也许 Timespan1 和 2 是好的,但 timespan3 是负数,但我想保留它们。

我是否在 AVG 函数中放置了 case 语句?有没有更有效的方法来运行它?

    SELECT DATE(tbl.time1) AS 'date',
AVG((time_to_sec(timediff(tbl.time2 , tbl.time1))/3600) ) AS 'avg_time1',
AVG((time_to_sec(timediff(tbl.time3 , tbl.time2))/3600) ) AS 'avg_time2',
AVG((time_to_sec(timediff(tbl.time4 , tbl.time3))/3600) ) AS 'avg_time3',
FROM tbl
WHERE DATE(tbl.time1) = '$variable'
GROUP BY DATE(tbl.time1)

我使用重复的 Alex 找到了它,其原理如下:

SELECT AVG(`a`), AVG(IF(`b` > -1, `b`, NULL)), AVG(`c`) FROM `t`;

最佳答案

我相信您希望使用 HAVING 关键字?

SELECT DATE(tbl.time1) AS 'date',
AVG((time_to_sec(timediff(tbl.time2 , tbl.time1))/3600) ) AS 'avg_time1',
AVG((time_to_sec(timediff(tbl.time3 , tbl.time2))/3600) ) AS 'avg_time2',
AVG((time_to_sec(timediff(tbl.time4 , tbl.time3))/3600) ) AS 'avg_time3',
FROM tbl
WHERE
AND DATE(tbl.time1) = '$variable'
GROUP BY DATE(tbl.time1)
HAVING avg_time1 > 0 AND avg_time2 > 0 and avg_time3 > 0;

关于PHP Mysql计算日期时间之间的平均值并忽略平均值中的负结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23141822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com