SELECT
t1.user_id,
count(*) total,
sum(case when t1.var1 = 'yes' then 1 else 0 end) as type1,
sum(case when t1.var1 = 'no' then 1 else 0 end) as type2
FROM table as t1
WHERE type1 > 0
GROUP by t1.user_id
ORDER by type1 DESC
LIMIT 100
In Folge i erhalten Reihen:mysql - warum Zustand wo nicht funktioniert?
user_id total type1 type2
1 100 80 20
4 120 70 50
6 90 0 90
mir bitte erklären, warum Bedingung WHERE type1 > 0
nicht funktionieren und wie wählen Sie Zeilen mit diesem Zustand?
machen Sie eine SQL-Geige für diese Fragen, es macht es einfacher für uns, Zeug zu versuchen: http://sqlfiddle.com/ – Jester
... und zeigen Sie die ursprünglichen Tabellen (und ihre Daten), die Sie abfragen. – Stuart