Wyświetlanie przykładowego zbioru danych, jeśli type,extra
są ograniczone, tj. typ może mieć tylko (1,2), a dodatkowy może mieć tylko (0,2) możesz to zrobić, używając wyrażenia w sumie da wynik 0 lub 1 w zależności od wyniku wyrażenia i możesz mieć swoje liczyć odpowiednio
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