Kombinieren mehrerer Datenpunkte zu einem einzigen Datenpunkt. Dies wird normalerweise in Bezug auf SQL und normalerweise auf eine Aggregatfunktion irgendeiner Art verwendet.
Gibt es Richtlinien oder Faustregeln, die festlegen, wann Aggregatwerte gespeichert und wann sie im laufenden Betrieb berechnet werden sollen? Angenommen, ich habe Widgets, die Benutzer bewerten können (siehe Schema unten). Jedes Mal, wenn ich ein Widget anzeige, kann ich die durchschnittliche Benutzerbewertung aus der RatingsTabelle berechnen . Alternativ könnte ich …
Ich scheine mich daran zu erinnern, dass es (bei Oracle) einen Unterschied gibt zwischen Äußern select count(*) from any_tableund select count(any_non_null_column) from any_table. Was sind die Unterschiede zwischen diesen beiden Aussagen, falls vorhanden?
Ich schreibe das Schema für eine einfache Bankdatenbank. Hier sind die grundlegenden Spezifikationen: In der Datenbank werden Transaktionen für einen Benutzer und eine Währung gespeichert. Jeder Benutzer verfügt über einen Kontostand pro Währung. Jeder Kontostand ist also einfach die Summe aller Transaktionen mit einem bestimmten Benutzer und einer bestimmten Währung. …
Vor Oracle 11.2 habe ich eine benutzerdefinierte Aggregatfunktion verwendet, um eine Spalte in eine Zeile zu verketten. 11.2 Die LISTAGGFunktion wurde hinzugefügt , daher versuche ich, sie stattdessen zu verwenden. Mein Problem ist, dass ich doppelte Ergebnisse eliminieren muss und dies anscheinend nicht kann. Hier ist ein Beispiel. CREATE TABLE …
Ich möchte einen Standardwert für eine Spalte verwenden, die verwendet werden soll, wenn keine Zeilen zurückgegeben werden. Ist das in PostgreSQL möglich? Wie kann ich es tun? Oder gibt es einen anderen Weg, wie ich das lösen kann? ZB so etwas: SELECT MAX(post_id) AS max_id DEFAULT 0 FROM my_table WHERE …
Ich bin in einer Situation, in der ich den Mindestwert von 6 Spalten erhalten möchte. Bisher habe ich drei Möglichkeiten gefunden, um dies zu erreichen, aber ich habe Bedenken hinsichtlich der Leistung dieser Methoden und möchte wissen, welche für die Leistung besser wären. Die erste Methode ist die Verwendung einer …
Der ANSI-SQL-Standard definiert (Kapitel 6.5, Festlegen der Funktionsspezifikation) das folgende Verhalten für Aggregatfunktionen in leeren Ergebnismengen: COUNT(...) = 0 AVG(...) = NULL MIN(...) = NULL MAX(...) = NULL SUM(...) = NULL Die Rückgabe von NULL für AVG, MIN und MAX ist absolut sinnvoll, da der Durchschnitt, das Minimum und das …
HAVINGMuss es für die Verwendung in SQL-Abfragen eine geben, GROUP BYum die Spaltennamen zu aggregieren? Gibt es spezielle Fälle, in denen es möglich ist, HAVINGohne GROUP BYSQL-Abfragen zu verwenden? Müssen sie gleichzeitig existieren?
Erste Worte Sie können die Abschnitte unter (und einschließlich) JOINs: Starting Off ignorieren, wenn Sie nur den Code knacken möchten. Der Hintergrund und die Ergebnisse dienen lediglich als Kontext. Sehen Sie sich den Bearbeitungsverlauf vor dem 06.10.2015 an, um zu sehen, wie der Code ursprünglich aussah. Zielsetzung Letztendlich möchte ich …
Vollständige Frage neu schreiben Ich suche nach einer First () - Aggregatfunktion. Hier habe ich etwas gefunden, das fast funktioniert: CREATE OR REPLACE FUNCTION public.first_agg ( anyelement, anyelement ) RETURNS anyelement LANGUAGE sql IMMUTABLE STRICT AS $$ SELECT $1; $$; -- And then wrap an aggregate around it CREATE AGGREGATE …
In einer Datenbank mit Transaktionen, die über einen Zeitraum von 18 Monaten Tausende von Entitäten umfasst, möchte ich eine Abfrage ausführen, um jeden möglichen 30-Tage-Zeitraum entity_idmit einer Summe ihrer Transaktionsbeträge und COUNT ihrer Transaktionen in diesem 30-Tage-Zeitraum zu gruppieren Geben Sie die Daten so zurück, dass ich sie dann abfragen …
Ich versuche, mehrere Datumsbereiche zu kombinieren (meine Last beträgt ungefähr 500, in den meisten Fällen 10), die sich möglicherweise mit den größtmöglichen zusammenhängenden Datumsbereichen überschneiden oder nicht. Beispielsweise: Daten: CREATE TABLE test ( id SERIAL PRIMARY KEY NOT NULL, range DATERANGE ); INSERT INTO test (range) VALUES (DATERANGE('2015-01-01', '2015-01-05')), (DATERANGE('2015-01-01', …
Ich bin auf dieses Rätsel in den Kommentaren hier gestoßen CREATE TABLE r (b INT); SELECT 1 FROM r HAVING 1=1; SQL Server und PostgreSQL geben 1 Zeile zurück. MySQL und Oracle geben keine Zeilen zurück. Welches ist richtig? Oder sind beide gleich gültig?
Wenn ich diesen Befehl mit SUM() SELECT COUNT(*) AS [Records], SUM(t.Amount) AS [Total] FROM dbo.t1 AS t WHERE t.Id > 0 AND t.Id < 101; Ich erhalte, Arithmetic overflow error converting expression to data type int. Irgendeine Idee woran es liegt? Ich folge nur den Anweisungen in dieser Antwort .
Ich habe zwei Tische employeeund phones. Ein Mitarbeiter kann 0 bis n Telefonnummern haben. Ich möchte die Namen der Mitarbeiter mit ihren Telefonnummern auflisten. Ich benutze die folgende Abfrage, die gut läuft. SELECT empname,array_agg(phonenumber) AS phonenumbers FROM employee LEFT OUTER JOIN phones ON employee.empid = phones.empid GROUP BY employee.empid Die …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.