Как мне группировать поле даты, чтобы получать ежеквартальные результаты в MySQL?

У меня есть таблица заданий, в которой хранятся задания, а leaddate - поле для записи задания.

Результат, который я хочу получить, - это количество заданий, которые у меня есть в каждом квартале. Мой запрос подсчитывает задания каждой даты в поле leaddate.

Вот запрос

select count(jobid) as jobcount, leaddate
from jobs
where contactid='19249'
group by leaddate

Ответ 1

Я думаю, что это должно сработать:

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)

Ответ 2

Предположим, что у вас есть допустимое поле даты или времени:

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

Ответ 3

Я обычно объединяю квартал и год в одно поле YEAR-QUARTER:

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

RETURNS, такие как:

19249, 324, 2011-3
19249,   4, 2011-2
19249,  34, 2011-1

Ответ 4

вы можете использовать функцию Quarter, чтобы получить четверть от даты:

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