[英]SQL query to generate count for every month in a year
我需要生成一年中每个月的交易计数。 我有以下查询:
select state, taxing_entity, count(taxing_entity)Total_TRXN_Count
from taxes where effect_date between '2015/01/01' and '2015/12/31'
group by state, taxing_entity, effect_date
我尝试了各种方式,例如GROUP BY YEAR(record_date), MONTH(record_date)
和GROUP BY DATE_FORMAT(record_date, '%Y%m')
。 如何更改上述查询,以便生成一年中每个月的交易计数,而无需在结束时手动更改年份
select MONTH(effect_date) Reporting_Month
, state
, taxing_entity
, count(taxing_entity) Total_TRXN_Count
from taxes
where effect_date between '2015/01/01' and '2015/12/31'
group by MONTH(effect_date)
, state
, taxing_entity
order by MONTH(effect_date)
, state
, taxing_entity
这就是您想要的吗? 它应该按月列出每个州和taxing_entity的总计。
select state, taxing_entity,
YEAR(effect_date), MONTH(effect_date),
count(taxing_entity) AS Total_TRXN_Count
from taxes
where effect_date between '2015/01/01' and '2015/12/31'
group by state, taxing_entity, YEAR(effect_date), MONTH(effect_date)
您不需要WHERE
子句,因为聚合将自动按年份分隔数据:
SELECT state
, taxing_entity
, DATE_FORMAT(record_date, '%Y-%m') YearMonth
, COUNT(taxing_entity) AS Total_TRXN_Count
FROM taxes
GROUP BY state
, taxing_entity
, DATE_FORMAT(record_date, '%Y-%m')
;
我选择通过DATE_FORMAT(record_date, '%Y-%m')
进行汇总。
如果愿意,还可以按年份和月份在单独的列中进行汇总: YEAR(record_date), MONTH(record_date)
如果要将数据导入Microsoft Excel,则建议将日期“截断”到每月的第一天,然后在Excel中更改格式以仅显示月份和年份: DATE_FORMAT(record_date, '%Y-%m-01')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.