给定一个包含时间戳的列的表,我想计算TIMEDIFF(now(), timeStamp)
大于某个值的实例数。我遇到的问题是在声明中实现这一切。我的努力:
SELECT COUNT*()
FROM sometable
WHERE (SELECT TIMEDIFF(now(),column_from_sometable) > 10
我不太确定如何使用where语句中的TIMEDIFF
来进行比较。 (显然,您必须使用SELECT
来调用该方法,然后我才不确定如何从该语句中的sometable
访问该列。)
答案 0 :(得分:2)
如果列column_from_sometable
属于同一个表sometable
,则您不需要子选择。您可以在WHERE
条件中包含
SELECT COUNT(*)
FROM sometable
WHERE TIMEDIFF(now(),column_from_sometable) > 10
您也可以通过在聚合函数中添加条件(如
)来简化此操作SELECT SUM(CASE WHEN TIMEDIFF(now(),column_from_sometable) > 10 THEN 1 ELSE 0 END)
FROM sometable