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中的布尔表达式的和将在表达式为真时计数