Для MySQL вы можете напрямую помещать условия в функцию SUM()
, и она будет оценена как Boolean 0
или 1
, и вы можете иметь свой счет на основе ваших критериев, не используя IF/CASE
SELECT
company_name,
SUM(action = 'EMAIL')AS Email,
SUM(action = 'PRINT' AND pagecount = 1)AS Print1Pages,
SUM(action = 'PRINT' AND pagecount = 2)AS Print2Pages,
SUM(action = 'PRINT' AND pagecount = 3)AS Print3Pages
FROM t
GROUP BY company_name
DEMO