ich eine Tabelle, die so ziemlich sieht wie folgt aus: users (id INT, masterId INT, date DATETIME)
MySQL kombinieren 2 verschiedenen Zählungen in einer Abfrage
Jeder Benutzer genau ein Master hat. Aber Meister können n Benutzer haben.
Jetzt möchte ich herausfinden, wie viele Benutzer jeder Master hat. Ich mache das so:
SELECT `masterId`, COUNT(`id`) AS `total` FROM `users` GROUP BY `masterId` ORDER BY `total` DESC
Aber jetzt weiß ich möchte auch, wie viele neue Benutzer ein Meister seit den letzten 14 Tagen hat. Ich kann es mit dieser Abfrage tun:
SELECT `masterId`, COUNT(`id`) AS `last14days` FROM `users` WHERE `date` > DATE_SUB(NOW(), INTERVAL 14 DAY) GROUP BY `masterId` ORDER BY `total` DESC
Jetzt die Frage: Kann ich irgendwie diese Informationen erhalten mit einer Abfrage, anstelle von 2-Abfragen mit?
Diese Abfrage zeigt exakt die gleichen Werte für die Gesamt und last14days – pimeys
@pimeys in jeder Zeile habe ich die Abfrage aktualisiert: Im Standard-SQL würde dies innerhalb der Aggregatfunktion mit einem Fall Ausdruck erfolgen also sollte es jetzt funktionieren. – jpw
Super, danke! – pimeys