Fragen zu SQL Abfrage

Hallo,

ich habe ein paar Fragen zu folgender SQL-Abfrage:

  1. Was hat das mit dem interval(90), welche Daten passen für die Bedingung (where Klausel)?

  2. Was heißt count(*)? Die Anzahl der Zeilen die gruppiert (group by) werden?

select
l_returnflag,
l_linestatus,
sum(l_quantity) as sum_qty,
sum(l_extendedprice) as sum_base_price,
sum(l_extendedprice * (1 - l_discount)) as sum_disc_price,
sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge,
avg(l_quantity) as avg_qty,
avg(l_extendedprice) as avg_price,
avg(l_discount) as avg_disc,
count(*) as count_order
from
lineitem
where
l_shipdate

Hallo,

  1. Interval beschreibt einen Zeitraum, hier 90 in Tagen.
    Den Rest deiner Frage verstehe ich nicht.

  2. Gibt die Anzahl des Vorkommens von * zurück, alle Datensätze mit allen Feldern eines Datensatzes als Unterscheidungsmerkmal, gruppiert nach den in der Group by Klausel angegeben Feldern.

hallo,

danke für die schnelle Antwort.

Das mit dem Zeitraum habe ich auch schon nachgelesen, aber wie kann man sich das vorstellen mit dem Zeitraum?

Mit den Rest der Frage meine ich, wie das Datum aussehen muss, damit die Bedingung zu trifft. Also es muss kleiner gleich dem 1.12.1998 sein. Was hat dann der Zeitraum da noch für eine Bedeutung?

von dem 1.12.1998 wird noch ein Interval von 90 Tagen subtrahiert. Ist das nicht das gleiche wie 1.9.1998 (also vor 90 Tagen)??

Gruß

Hallo sim186,

nö, 90 Tage vom 1.12.1998 abgezogen ist der 2.9.1998 und nicht der 1.9.1998. Manchmal ist es besser nicht die ausgerechneten Konstanten sondern -im Sinne der besseren Dokumentation- die beiden Konstanten dort stehen zu lassen. Die Auswertung zum 1.12.1998 ohne Berücksichtigung der Versendungen, die in den letzten 90 Tage stattgefunden haben.

Die Group By Frage (Thematik Aggregationsfunktionen) wurde ja schon von krampe beantwortet.

MfG Georg V.