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
🎥 Join me live on YouTubePassionate about coding and teaching, I publish practical tutorials on PHP, Python, JavaScript, SQL, and web development. My goal is to make learning simple, engaging, and project‑oriented with real examples and source code.