Uw voorbeelddataset bekijken als type,extra
zijn beperkt, d.w.z. type kan alleen (1,2) hebben en extra kan alleen (0,2) hebben, je kunt dit doen, als je uitdrukking in som gebruikt, zal het resulteren als 0 of 1 op basis van de uitkomst van de uitdrukking en je kunt je tel dienovereenkomstig
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