繁体   English   中英

SQL查询以生成一年中每个月的计数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM