统计sql查询


甲基蓝
2025-03-08 04:28:27 (1月前)
  1. 我正在绘制统计图表,因此我需要获取图表在x轴上有12个月且每个月有3个状态部分的数据,每个状态部分都显示其计数值。我想过像这样的sql

3 条回复
  1. 0# 天线宝宝 | 2019-08-31 10-32



    @jarlh所建议的那样,MCVE会更有帮助,但在线条之间阅读,我认为你正在寻找这样的东西。您需要按状态和月份进行分组,以报告您的12个月中的每一个月。




    1. SELECT status
      ,DATE_PART(‘MONTH’, created_date )
      ,count(*) as month_count
      FROM Profile
      WHERE DATE_PART(‘MONTH’, created_date ) = 6
      GROUP BY status
      ,DATE_PART(‘MONTH’, created_date )

    2. </code>

  2. 1# 遇见你 | 2019-08-31 10-32



    此答案假设数据库是Postgres,基于查询的语法。



    那么,你的查询并没有考虑到年份。我怀疑你真的想要这样的东西:




    1. SELECT date_trunc(‘month’, created_date) as yyyymm, status, count(*)
      FROM Profile
      WHERE created_date >= date_trunc(‘month’, now())
      GROUP BY yyyymm, status;

    2. </code>


    但是,您可能希望将其作为列:




    1. SELECT date_trunc(‘month’, created_date) as yyyymm,
      COUNT() FILTER (WHERE status = :status1) as status_1,
      COUNT(
      ) FILTER (WHERE status = :status2) as status_2,
      COUNT(*) FILTER (WHERE status = :status3) as status_3
      FROM Profile
      WHERE created_date >= date_trunc(‘month’, now())
      GROUP BY yyyymm;

    2. </code>


    这可能更适合绘图目的。


登录 后才能参与评论