Anzeigen Ihres Beispieldatensatzes, wenn type,extra
sind begrenzt, d.h. Typ kann nur (1,2) haben und Extra kann nur (0,2) haben, Sie können dies tun, indem Sie den Ausdruck in der Summe verwenden, wird es als 0 oder 1 resultieren, basierend auf dem Ergebnis des Ausdrucks, und Sie können Ihre haben entsprechend zählen
SELECT
user_id,
SUM(`type`=1 AND `extra`=0) one_noextra,
SUM(`type`=1 AND `extra`=2) one_twoextra,
SUM(`type`=2 AND `extra`=0) two_noextra,
SUM(`type`=2 AND `extra`=2) two_twoextra
FROM Table1
GROUP BY user_id