Wir nutzen die MySQL-spezifische IF()
Funktion,
SELECT COUNT(DISTINCT IF(pu.app_id=1,pu.field_id,NULL)) AS `With Reco`
FROM mytable pu
oder ein Äquivalent, ANSI-Standards kompatibel CASE
Ausdruck
SELECT COUNT(DISTINCT CASE WHEN pu.app_id=1 THEN pu.field_id END)
NULL zurück, wenn die Bedingungen, die wir aren testen wollen‘ t zufrieden, und andernfalls den Ausdruck zurückgeben (field_id
) Wir möchten eine Anzahl von verschiedenen Werten erhalten, wenn die Bedingungen erfüllt sind. Dann können wir den Ausdruck in ein COUNT(DISTINCT)
Aggregat einhüllen.
Für die Prüfung, fallen die COUNT (DISTINCT) Aggregat, und geben die einzelnen Reihen ...
SELECT pu.app_id
, pu.field_id
, IF(pu.app_id=1,pu.field_id,NULL) AS foo
FROM mytable pu
ORDER BY ...
LIMIT 80
Das ist mein bestes Verständnis von dem, was ihr bittet.
Wenn Sie das nicht möchten, sollten Sie einige Beispieldaten und die erwartete Ausgabe Ihrer Abfrage bereitstellen.
Ich denke, Sie sollten eine andere Frage mit Beispieldaten und gewünschten Ergebnissen stellen. –
Beispieldaten und erwartete Ausgabe würden besser veranschaulichen, was Sie erreichen möchten. – spencer7593