Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql DATEDIFF(当前日期,更新日期)为Diff,计数(*)_Mysql_Sql_Count - Fatal编程技术网

Mysql DATEDIFF(当前日期,更新日期)为Diff,计数(*)

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

我只是不能把我的头绕在这上面:(

我试图从我的专栏“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_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;