Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.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中按时间分组计数_Mysql_Sql - Fatal编程技术网

MySql中按时间分组计数

MySql中按时间分组计数,mysql,sql,Mysql,Sql,我有一个简单的查询,可以提供应用程序类型的计数;它看起来像这样: SELECT Application_Type, COUNT(*) FROM Loan_Applications GROUP BY Application_Type; Home 3 Car 21 Commercial 16 它返回如下内容: SELECT Application_Type, COUNT(*) FROM Loan_Applications GROUP BY Application_Type; Home 3 C

我有一个简单的查询,可以提供应用程序类型的计数;它看起来像这样:

SELECT Application_Type, COUNT(*) FROM Loan_Applications GROUP BY Application_Type;
Home 3
Car  21
Commercial 16
它返回如下内容:

SELECT Application_Type, COUNT(*) FROM Loan_Applications GROUP BY Application_Type;
Home 3
Car  21
Commercial 16
数据库中有一个名为“提交日期”的字段(日期类型)

如何按周查询和分解这些数据

Type This week   Last week  2 weeks ago
Home    1            1          1
Car     9            6          6 
Commercial 10        0          3

您可以进行SUMIF类型的计算。以下汇总了提交日期在上周内的行数

SUM(CASE WHEN submission_date >= CURDATE() - 7 THEN 1 ELSE 0 END)

然后,您可以在不同的范围内重复此操作,以获得您想要的任何“波段”。

您可以尝试以下方法:

SELECT
    Application_Type,
    SUM(IF(Submission_Date BETWEEN CURRENT_DATE AND CURRENT_DATE - INTERVAL 1 WEEK, 1, 0)) AS 'This week',
    SUM(IF(Submission_Date BETWEEN CURRENT_DATE- INTERVAL 1 WEEK AND CURRENT_DATE - INTERVAL 2 WEEK, 1, 0)) AS 'Last week',
    SUM(IF(Submission_Date BETWEEN CURRENT_DATE- INTERVAL 2 WEEK AND CURRENT_DATE - INTERVAL 3 WEEK, 1, 0)) AS '2 weeks ago',
FROM Loan_Applications
GROUP BY Application_Type
;
或:

试一试

它基于这样一个事实,即group by中的布尔表达式的和将在表达式为真时计数