Visa din exempeldatauppsättning om type,extra
är begränsade dvs typ kan bara ha (1,2) och extra kan bara ha (0,2) du kan göra det, genom att använda uttryck i summa kommer det att resultera som 0 eller 1 baserat på resultatet av uttrycket och du kan få din räkna därefter
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