SELECT QUARTER('2018-03-12')
Output is 1 SELECT QUARTER(CURDATE())
CURDATE() returns todays date
Using Group by command to get records of each quarter.
SELECT QUARTER(payment_dt) , COUNT(*) from plus2_bills
GROUP BY QUARTER(payment_dt)
Output is
| QUARTER(payment_dt) | count(*) |
|---|---|
| 1 | 8 |
| 2 | 6 |
| 3 | 6 |
| 4 | 6 |
WHERE condition to filter records
SELECT QUARTER(payment_dt) , count(*) from plus2_bills
WHERE YEAR(payment_dt)='2016'
GROUP BY QUARTER(payment_dt)
| QUARTER(payment_dt) | count(*) |
|---|---|
| 1 | 2 |
| 2 | 2 |
| 3 | 2 |
| 4 | 2 |
SELECT CONCAT(YEAR(payment_dt), '-Q',QUARTER(payment_dt)) as qt_year ,
COUNT(*) as Nos,SUM(amount) as total,AVG(amount) as average
FROM `plus2_bills` GROUP BY qt_year
SELECT DATE_FORMAT( payment_dt, '%Y-%M-%d' ) AS DATE,
CASE WHEN QUARTER(payment_dt)=1
THEN CONCAT(YEAR(payment_dt)-1, '-Q',QUARTER(payment_dt)+3)
ELSE concat(YEAR(payment_dt),'-Q',QUARTER(payment_dt)-1)
END AS qt_year
FROM `plus2_bills`
Output List : Each record with matching Financial Year and Quarter SELECT DATE_FORMAT( payment_dt, '%Y-%M-%d' ) AS DATE,
CASE WHEN QUARTER( payment_dt ) !=4
THEN CONCAT( YEAR( payment_dt ) -1,'-Q', QUARTER( payment_dt ) +1 )
ELSE CONCAT( YEAR( payment_dt ) , '-Q', QUARTER( payment_dt )-3 )
END AS qt_year
FROM `plus2_bills`
Output List : Each record with matching Financial Year and Quarter SELECT
CASE WHEN QUARTER(payment_dt)=1
THEN CONCAT(YEAR(payment_dt)-1, '-Q',QUARTER(payment_dt)+3)
ELSE concat(YEAR(payment_dt),'-Q',QUARTER(payment_dt)-1)
END AS qt_year ,
COUNT(*) as Nos,SUM(amount) as total,AVG(amount) as average
FROM `plus2_bills` GROUP BY qt_year
| qt_year | Nos | total | average |
|---|---|---|---|
| 2014-Q4 | 2 | 12208 | 6104.0000 |
| 2015-Q1 | 2 | 11172 | 5586.0000 |
| 2015-Q2 | 2 | 12062 | 6031.0000 |
| 2015-Q3 | 2 | 8322 | 4161.0000 |
| 2015-Q4 | 2 | 14412 | 7206.0000 |
| 2016-Q1 | 2 | 11399 | 5699.5000 |
| 2016-Q2 | 2 | 9103 | 4551.5000 |
| 2016-Q3 | 2 | 11288 | 5644.0000 |
| 2016-Q4 | 2 | 9095 | 4547.5000 |
| 2017-Q1 | 2 | 11319 | 5659.5000 |
| 2017-Q2 | 2 | 10186 | 5093.0000 |
| 2017-Q3 | 2 | 10002 | 5001.0000 |
| 2017-Q4 | 2 | 9105 | 4552.5000 |
SELECT
CASE WHEN QUARTER( payment_dt ) !=4
THEN CONCAT( YEAR( payment_dt ) -1,'-Q', QUARTER( payment_dt ) +1 )
ELSE CONCAT( YEAR( payment_dt ) , '-Q', QUARTER( payment_dt )-3 )
END AS qt_year,
COUNT(*) as Nos,SUM(amount) as total,AVG(amount) as average
FROM `plus2_bills` GROUP BY qt_year
Financial year starting from 1st July to 30th June
SELECT
CASE WHEN QUARTER( payment_dt ) <=2
THEN CONCAT( YEAR( payment_dt ) -1,'-Q', QUARTER( payment_dt ) +2 )
ELSE CONCAT( YEAR( payment_dt ) , '-Q', QUARTER( payment_dt )-2 )
END AS qt_year,
COUNT(*) as Nos,SUM(amount) as total,AVG(amount) as average
FROM `plus2_bills` GROUP BY qt_year
SELECT
CASE WHEN QUARTER(payment_dt)=1
THEN CONCAT(YEAR(payment_dt)-1, '-',DATE_FORMAT(payment_dt,'%y'), '-Q',QUARTER(payment_dt)+3)
ELSE concat(YEAR(payment_dt), '-',DATE_FORMAT(payment_dt,'%y')+1,'-Q',QUARTER(payment_dt)-1)
END AS qt_year ,
COUNT(*) as Nos,SUM(amount) as total,AVG(amount) as average
FROM `plus2_bills` GROUP BY qt_year
| qt_year | Nos | total | average |
|---|---|---|---|
| 2014-15-Q4 | 2 | 12208 | 6104.0000 |
| 2015-16-Q1 | 2 | 11172 | 5586.0000 |
| 2015-16-Q2 | 2 | 12062 | 6031.0000 |
| 2015-16-Q3 | 2 | 8322 | 4161.0000 |
| 2015-16-Q4 | 2 | 14412 | 7206.0000 |
| 2016-17-Q1 | 2 | 11399 | 5699.5000 |
| 2016-17-Q2 | 2 | 9103 | 4551.5000 |
| 2016-17-Q3 | 2 | 11288 | 5644.0000 |
| 2016-17-Q4 | 2 | 9095 | 4547.5000 |
| 2017-18-Q1 | 2 | 11319 | 5659.5000 |
| 2017-18-Q2 | 2 | 10186 | 5093.0000 |
| 2017-18-Q3 | 2 | 10002 | 5001.0000 |
| 2017-18-Q4 | 2 | 9105 | 4552.5000 |
Author & Instructor at plus2net
I write and maintain practical tutorials on Python, PHP, SQL, JavaScript, HTML, jQuery, and web development at plus2net. The tutorials focus on clear explanations, working examples, and code that readers can test and adapt while learning.