Mysql DATEDIFF(当前日期,更新日期)为Diff,计数(*)
我只是不能把我的头绕在这上面:( 我试图从我的专栏“Diff”中输出3个不同的结果Mysql DATEDIFF(当前日期,更新日期)为Diff,计数(*),mysql,sql,count,Mysql,Sql,Count,我只是不能把我的头绕在这上面:( 我试图从我的专栏“Diff”中输出3个不同的结果 使用条件聚合: SELECT COUNT(CASE WHEN DATEDIFF(CURRENT_DATE, updated_at) < 1 THEN 1 END) AS diff_lt_1, COUNT(CASE WHEN DATEDIFF(CURRENT_DATE, updated_at) >= 1 AND DATEDIFF(CURRENT_D
使用条件聚合:
SELECT
COUNT(CASE WHEN DATEDIFF(CURRENT_DATE, updated_at) < 1 THEN 1 END) AS diff_lt_1,
COUNT(CASE WHEN DATEDIFF(CURRENT_DATE, updated_at) >= 1 AND
DATEDIFF(CURRENT_DATE, updated_at) < 3 THEN 1 END) AS diff_1_to_3,
COUNT(CASE WHEN DATEDIFF(CURRENT_DATE, updated_at) >= 3 AND
DATEDIFF(CURRENT_DATE, updated_at) < 7 THEN 1 END) AS diff_3_to_7,
COUNT(CASE WHEN DATEDIFF(CURRENT_DATE, updated_at) >= 7 THEN 1 END) AS diff_gt_7
FROM Table;
选择
计数(当DATEDIFF(当前日期,更新日期)小于1然后为1结束时的情况)为diff\u lt\u 1,
计数(DATEDIFF(当前日期,更新时间)大于等于1时的情况,以及
DATEDIFF(当前日期,更新时间)<3然后1结束)作为diff_1到_3,
计数(DATEDIFF(当前日期,更新时间)大于等于3时的情况,以及
DATEDIFF(当前日期,更新时间)<7然后1结束)作为diff\u 3到7,
计数(当DATEDIFF(当前日期,更新时间)>=7然后为1结束时的情况)为diff\u gt\u 7
从表中;
实际上还不清楚您应该在哪个列进行分组。如果您显示显示您正在尝试执行的操作的示例数据,我们可以修改上述查询。是:)Tims查询对我来说很好,但这将使它变得完美哇,这就像一个魅力:)非常感谢!我如何修改它,使它不会“重复计数”,因为它现在将显示在@Intercept0r中。我将告诉您,通常情况下,您也会按某个列进行分组,然后为每个组获取这些差异。在本例中,您将使它们穿过整个表。如果那是你想要的,那你就完了。如果没有,则显示一些示例数据。实体表很好,我也不需要组;)当然可以:)你能帮我做“双重计数”吗?我不知道怎么放置,我不知道双重计数对你意味着什么。
SELECT
COUNT(CASE WHEN DATEDIFF(CURRENT_DATE, updated_at) < 1 THEN 1 END) AS diff_lt_1,
COUNT(CASE WHEN DATEDIFF(CURRENT_DATE, updated_at) >= 1 AND
DATEDIFF(CURRENT_DATE, updated_at) < 3 THEN 1 END) AS diff_1_to_3,
COUNT(CASE WHEN DATEDIFF(CURRENT_DATE, updated_at) >= 3 AND
DATEDIFF(CURRENT_DATE, updated_at) < 7 THEN 1 END) AS diff_3_to_7,
COUNT(CASE WHEN DATEDIFF(CURRENT_DATE, updated_at) >= 7 THEN 1 END) AS diff_gt_7
FROM Table;