数据库表: bst_account_info):当查询条件为空时,默认查询近12个月的账户新增(status值为'0')、销户(status值为'2')数量以月为单位分割;当查询条件不为空时,查询account_member_group字段值为当前企业名称,该日期时间段内所有近12个月的账户新增、销户数量以月为单位分割,没有值的数据默认赋值为0;
时间: 2024-02-23 16:59:24 浏览: 63
您可以使用如下的SQL语句来实现这个需求:
```
SELECT
DATE_FORMAT(date_add(date_column, interval 1-day(date_column) day), '%Y-%m') as month,
sum(case when status='0' then 1 else 0 end) as new_account_count,
sum(case when status='2' then 1 else 0 end) as closed_account_count
FROM
bst_account_info
WHERE
account_member_group = '当前企业名称' AND date_column >= date_sub(curdate(), interval 12 month)
OR
date_column BETWEEN DATE_FORMAT(NOW() ,'%Y-%m-01') - INTERVAL 11 MONTH AND NOW()
GROUP BY
month
ORDER BY
month
```
这个SQL语句会根据查询条件分组统计每个月份的新增账户数量和销户数量。其中,`DATE_FORMAT(date_add(date_column, interval 1-day(date_column) day), '%Y-%m')`会将日期格式化为年月的形式,`sum(case when status='0' then 1 else 0 end)`会统计符合条件的新账户数量,`sum(case when status='2' then 1 else 0 end)`会统计符合条件的销户数量。通过`GROUP BY`子句将结果按照月份分组,`ORDER BY`子句将结果按照月份排序。
阅读全文