【问题标题】:SQL query to generate count for every month in a year用于生成一年中每个月的计数的 SQL 查询
【发布时间】:2016-08-16 22:18:44
【问题描述】:

我需要为一年中的每个月生成交易计数。我有以下查询:

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')。如何更改上述查询以生成一年中每个月的交易计数,而无需在结束后手动更改年份

【问题讨论】:

    标签: mysql sql-server


    【解决方案1】:
    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 提供总计。

    【讨论】:

    • 我还需要上面查询中的“WHERE”子句吗?
    • where 子句用于过滤查询的开始和结束日期。没有它,您将永远获得所有数据。您可以使用另一个 WHERE 子句,例如 WHERE YEAR(effect_date)=2015。取决于您希望如何过滤数据。
    【解决方案2】:
    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)
    

    【讨论】:

      【解决方案3】:

      您不需要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')

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-11
        相关资源
        最近更新 更多