Ist es möglich, nur einen bestimmten Wert anzuzeigen, wenn eine SUM-Abfrage ausgeführt wird? Zum Beispiel habe ich eine business_user
Tabelle und eine campaigns
Tabelle für eine Wohltätigkeitsorganisation.Gibt es eine Möglichkeit, eine Zeile NUR in SQL anzuzeigen, wenn SUM einen bestimmten Wert zurückgibt?
Wie Sie sehen können, hat Geschäftsbenutzer 2 2 aktive Kampagnen, während Geschäftsbenutzer 1 0 aktive Kampagnen hat.
mysql> select business_id, active from campaigns;
+-------------+--------+
| business_id | active |
+-------------+--------+
| 2 | 1 |
| 2 | 1 |
| 1 | 0 |
+-------------+--------+
3 rows in set (0.00 sec)
mysql> SELECT b.business_id, SUM(CASE WHEN c.active = true THEN 1 ELSE 0 END) as active_campaigns
-> FROM business_users b, campaigns c
-> WHERE b.business_id = c.business_id
-> GROUP BY c.business_id;
+-------------+------------------+
| business_id | active_campaigns |
+-------------+------------------+
| 1 | 0 |
| 2 | 2 |
+-------------+------------------+
Jedes Mal, wenn ich die Abfrage oben ausführen, mag ich die Zeilen mit active_campaigns = 0
zu zeigen, und Zeilen mit einem anderen Wert zu zeigen, nicht. Ist es möglich, dies zu tun?