I made this solved with the below query in case anyone wants to use it.
this gives agent wise month wise total tickets count.
(SELECT 'MONTHNAME','name1','name2','name3')
UNION
(SELECT MONTHNAME,name1,name2,name3 FROM
(
SELECT
MONTHNAME(osticketdb_ticket.created) AS MONTHNAME,
MONTH(osticketdb_ticket.created) AS MONTH,
COUNT(CASE WHEN osticketdb_staff.Username = 'Name1' THEN 1 END) AS 'name1',
COUNT(CASE WHEN osticketdb_staff.Username = 'name2' THEN 1 END) AS 'name2',
COUNT(CASE WHEN osticketdb_staff.Username = 'name3' THEN 1 END) AS 'name3',
FROM osticketdb_ticket
join osticketdb_staff on osticketdb_staff.staff_id = osticketdb_ticket.staff_id
WHERE (DATE(osticketdb_ticket.created) BETWEEN DATE('2023-01-01') AND DATE('2023-12-31'))
AND osticketdb_staff.username IN('name1','name2','name3')
GROUP BY MONTH
)X GROUP BY X.MONTH