Vielen Dank für jede Hilfe im Voraus, ich kann meine SQL-Kenntnisse nicht um diese einpacken ...
Ich habe zwei Tabellen wie folgt:
Einstellungen
Kunden-ID ViewerLimit
1 50
2 50
Verteilung
Kunden-ID ServerIP
1 Stream3
1 Stream4
2 stream3
Ich möchte die Belastung für jeden Server berechnen. Ein Kunde teilt die Last auf, wenn er mehr als einen Server hat. Daher legt Kunde 1 eine Last von 25 auf jeden Server. Das Ergebnis, das ich versuche zu bekommen, ist das:
ServerIP Laden
stream3 75
stream4 25
Ich habe versucht, eine ähnliche Summenfunktion zu erstellen:
%Vor%Aber ich kann keine Unterabfrage innerhalb einer Summenfunktion machen. Es gibt viele Kunden und möglicherweise viele Server pro Kunde, so dass es zu komplex wird, dies manuell zu tun. Ich schätze jede Eingabe.
Hier ist eine uninspirierte Version mit Count in der abgeleiteten Tabelle:
%Vor%UPDATE - ein Erklärungsversuch
Abgeleitete Tabellen werden verwendet, um Ad-hoc-Ergebnismengen zu erzeugen, die mit dem Hauptteil einer Abfrage verknüpft werden können. Es wird in from-Klausel platziert und in Klammern eingeschlossen. Sie können alles verwenden, was ein gewöhnliches Select verwenden kann, Top, Sortieren nach, Aggregatfunktionen usw. Das einzige, was Sie nicht verwenden können, ist die Korrelation zu einer Tabelle im Hauptteil. Oh, und CTE. Abgeleitete Tabelle muss Alias sein.
In der vorherigen Beispiel-abgeleiteten Tabelle wählt 'a' die Anzahl der Server nach Kunden-ID aus. Der Hauptteil sieht es als Tabelle mit den Spalten CustomerId und ServerCount, die als eine beliebige Spalte aller aufgelisteten Tabellen verwendet werden können. Ein Join auf customerid wird zwischen Einstellungen und 'a' durchgeführt. Da es sich um eine 1: 1-Beziehung handelt (beide Tabellen erzeugen eine einzelne Zeile bei einer customerid), findet keine Duplizierung statt.
Wie wäre es, eine Anzahl von Servern in einer Sub-Abfrage zu zählen und diese einer Abfragevariablen zuzuweisen und diese Abfragevariable dann innerhalb der Summenfunktion zu verwenden?
Tags und Links sql