Wie werden alle Zeilen in einer Tabelle für alle Gruppen in einer anderen Tabelle wiederholt?Wie werden alle Zeilen in einer Tabelle für alle Gruppen in einer anderen Tabelle wiederholt?
Antwort
dies versuchen,
SELECT d.*, dp.dept, u.users_created
FROM dbo.dates d
CROSS APPLY (SELECT DISTINCT dept FROM dbo.users) as dp
OUTER APPLY (SELECT COUNT(*) users_created
FROM dbo.users u
WHERE u.dept = dp.dept
AND u.created_at >= d.month_start
AND u.created_at < d.next_month_start
) as u
Machen Sie einen einfachen SELECT COUNT von bestimmten Daten?
SELECT month_start, next_month_start, sum(cnt) as users, dept FROM
(SELECT CASE WHEN created_at<=next_month_start AND created_at>=month_start THEN 1 ELSE 0 END as cnt,
users.*, month_start, next_month_start FROM users
CROSS JOIN dates) as S1
GROUP BY dept, month_start, next_month_start ORDER BY dept DESC
SELECT D.id dates_id,D.month_start dates_start,D.next_month_start dates_next_month_start,count(U.id) user_created,U.dept
FROM dates D
LEFT JOIN users U ON concat(year(U.created_at) ,"-",month(U.created_at)) = concat(year(D.month_start) ,"-",month(D.month_start))
GROUP BY concat(year(D.month_start) ,"-",month(D.month_start)) ,concat(year(D.next_month_start) ,"-",month(D.next_month_start)) ;
Es folgt die aus
setzenid month_start next_month_start user_created dept
7 February, 01 2016 00:00:00 March, 01 2016 00:00:00 0 (null)
6 March, 01 2016 00:00:00 April, 01 2016 00:00:00 2 sales
5 April, 01 2016 00:00:00 May, 01 2016 00:00:00 3 sales
4 May, 01 2016 00:00:00 June, 01 2016 00:00:00 0 (null)
3 June, 01 2016 00:00:00 July, 01 2016 00:00:00 2 hr
2 July, 01 2016 00:00:00 August, 01 2016 00:00:00 0 (null)
1 August, 01 2016 00:00:00 September, 01 2016 00:00:00 0 (null)
Dies ist nicht das Gleiche wie ich es verlangte. Beachten Sie, dass ich die gesamte "Daten" -Tabelle für jede Abteilung in der Tabelle "Benutzer" wiederholen muss. Siehe die ASCII-Tabelle in meiner Frage. Das ist, was ich will. – user130268
Verwenden Sie auch SQL Server als Datenbank? Ich habe Syntaxfehler, wenn ich versuche, es auszuführen. Es scheint, dass "_" in SQL Server nicht gültig ist. – user130268
Ich verwende hier http://sqlfiddle.com/#!9/fd212/7 – Athar
Haben Sie so etwas wie dieses brauchen?
SELECT sum(cnt), month_start, next_month_start, dept
FROM
(
SELECT
CASE WHEN created_at<=next_month_start AND created_at>=month_start THEN 1 ELSE 0 END cnt,
users.*, month_start, next_month_start
FROM users
CROSS JOIN dates
) sbt
GROUP BY month_start, next_month_start, dept
- 1. Legen Sie alle Zeilen aus einer Tabelle in einer anderen
- 2. Möchten Sie für alle Zeilen in einer Tabelle in cassandra
- 3. Löschen Sie alle Zeilen in einer Tabelle basierend auf einer anderen Tabelle
- 4. Wie kann ich alle Zeilen einer Tabelle basierend auf den Werten einer anderen Tabelle aktualisieren?
- 5. Alle Zeilen in einer Tabelle mit einer Schaltfläche erweitern/reduzieren
- 6. Wie überprüft man alle Zeilen in einer Tabelle mit PHP
- 7. wie in VBA alle Zeilen einer Excel-Tabelle iterieren
- 8. Wie komprimiere ich alle angezeigten Zeilen in einer Tabelle?
- 9. Wie erhalten Sie alle Zeilen in einer Tabelle, die zu einer Zeile in einer anderen Tabelle führen?
- 10. Wie man versehentlich alle Zeilen in einer Tabelle löscht
- 11. Effizienter Weg, um alle Zeilen in einer Tabelle zu aktualisieren
- 12. alle Zeilen in einer Tabelle duplizieren und verhindern, doppelte Schlüssel
- 13. versuchen, alle Zeilen in einer Tabelle zurückzugeben und die Anzahl der Zeilen mit passender ID aus einer anderen Tabelle zählen
- 14. SQL-Abfrage: alle Elemente in einer Tabelle auflisten, die nicht in einer anderen Tabelle erscheinen
- 15. Wie wählt man alle Datensätze aus einer Tabelle, die nicht in einer anderen Tabelle existieren?
- 16. Wählen Sie alle Datensätze aus einer Tabelle, die nicht in einer anderen Tabelle in Laravel 5.1
- 17. Gruppierung von Zeilen aus einer MySQL-Tabelle in einer anderen
- 18. GeoJSON - Alle Funktionen in einer Tabelle anzeigen
- 19. auf alle Elemente in einer Tabelle
- 20. Wie kann ich alle Likes aus einer anderen Tabelle zählen?
- 21. Cache alle Modelle in einer Tabelle
- 22. Kopieren von Zeilen in einer Tabelle in die gleiche Tabelle mit einer anderen ID
- 23. Änderungen, die in einer Tabelle vorgenommen werden, müssen in einer anderen Tabelle widergespiegelt werden
- 24. Wie wähle ich die Zeilen einer Tabelle, die nicht mit einer anderen Tabelle in SQL übereinstimmen?
- 25. Wählen Sie alle Zeilen aus, in denen es keinen bestimmten Wert in einer anderen Tabelle gibt
- 26. Wählen Sie alle Elemente in einer Tabelle aus, die nicht in einem Fremdschlüssel einer anderen Tabelle enthalten sind
- 27. Wählen Sie Zeilen aus der Tabelle aus, in denen alle Spalten in einer anderen gesetzt sind
- 28. Wie Daten einer Tabelle in einem bestimmten Muster in einer anderen Tabelle angezeigt werden
- 29. Daten kopieren Validierungen nur aus einer einzigen Zeile aus einer Tabelle auf alle Zeilen einer anderen Tabelle
- 30. alle Datensätze einer Tabelle löschen, die nicht aus einer anderen Tabelle
Ich verstehe nicht, wie das zu tun. Könnten Sie mir helfen, eine Abfrage zu schreiben, die das Ergebnis in meiner Frage generiert? – user130268
Sorry, Abfrage hinzugefügt. Funktioniert bei mir. –