How do I group a date field to get quarterly results in MySQL?

前端 未结 4 1580
孤独总比滥情好
孤独总比滥情好 2020-12-18 19:47

I have a job table that holds jobs and leaddate is the field for the job entry.

The result I want to get is the number of jobs I have in each quarter. My query count

相关标签:
4条回答
  • 2020-12-18 20:03

    Supposing you have a valid date or datetime field:

    select count(jobid) as jobcount, YEAR(leaddate) yr, QUARTER(leaddate) qt
    from jobs
    where contactid='19249'
    group by yr, qt
    
    0 讨论(0)
  • 2020-12-18 20:09

    I usually combine quarter and year into a single YEAR-QUARTER field:

    select jobid, count(jobid) as jobcount, 
    CONCAT( YEAR(leaddate),'-',QUARTER(leaddate) ) as year_qtr
    from jobs
    where contactid='19249'
    group by year_qtr
    

    RETURNS data like:

    19249, 324, 2011-3
    19249,   4, 2011-2
    19249,  34, 2011-1
    
    0 讨论(0)
  • 2020-12-18 20:11

    you can use the Quarter function to get a quarter from date:

    select count(jobid) as jobcount, QUARTER(leaddate) as qt, YEAR(leaddate) as year
    from jobs
    where contactid='19249'
    group by year,qt
    
    0 讨论(0)
  • 2020-12-18 20:20

    I think this should do the job:

    SELECT YEAR(leaddate) AS year, QUARTER(leaddate) AS quarter, COUNT(jobid) AS jobcount
      FROM jobs
     WHERE contactid = '19249'
     GROUP BY YEAR(leaddate), QUARTER(leaddate)
     ORDER BY YEAR(leaddate), QUARTER(leaddate)
    
    0 讨论(0)
提交回复
热议问题