<< >> Up Title Contents Index

Spalten mit Set-Funktionen

ADABAS besitzt einige Funktionen, die spaltenweise über mehrere Zeilen arbeiten. Als abkürzende Bezeichnung für derartige Funktionen soll der Begriff Set-Funktionen verwendet werden.

Die Funktionen finden diese Werte

SUM die Gesamtsumme

MIN das Minimum

AVG den Durchschnittswert

MAX das Maximum

COUNT(DISTINCT...) die Anzahl der verschiedenen Werte

COUNT (*) die Anzahl aller Werte

STDDEV die Standardabweichung

VARIANCE die Varianz

NULL-Werte werden, mit Ausnahme bei COUNT (*), nicht in die Berechnung einbezogen.

Die Anfrage

SELECT SUM(konto) sum_konto, MIN(konto) min_konto,
       FIXED (AVG(konto),7,2) avg_konto,
       MAX(konto) max_konto, COUNT(*) anzahl
       FROM kunde
       WHERE ort = 'Berlin'

ergibt die Tabelle:

'SUM(konto)' bestimmt beispielsweise die Summe der Werte in der Konto-Spalte für alle ausgewählten Zeilen.

Wieviele Kunden gibt es?

SELECT COUNT(*) anzahl
       FROM kunde

An wievielen Orten wohnen diese Kunden?

SELECT COUNT(DISTINCT ort) anzahl_orte
       FROM kunde

Wieviele Kunden, die Firmen sind, werden berücksichtigt? Was ist der Durchschnittswert ihres Kontostandes?

SELECT COUNT(*) anzahl, FIXED (AVG(konto),7,2) avg_konto
       FROM kunde
       WHERE vorname IS NULL

Set-Funktionen arbeiten über Gruppen von Zahlen, aber sie geben nur einen Wert zurück. Das Ergebnis besteht also aus einer Zeile. Wenn eine Set-Funktion in einer Anfrage verwendet wird, muß auch auf jede andere Spalte der Anfrage eine solche Funktion angewandt werden. Dies gilt jedoch nicht für eine Spalte, über die mittels GROUP BY eine Gruppierung vorgenommen wurde. Es wird dann für jede Gruppe der Wert der Set-Funktion bestimmt.

Man schreibt

    Funktionsname (ausdruck)

Die Klammern sind notwendig. 'ausdruck' ist meist nur ein Spaltenname, kann aber u.a. auch

- ein arithmetischer Ausdruck,

- ein beliebig mit anderen Funktionen gebildeter Ausdruck,

- eine Konstante,

- DISTINCT mit Spaltenname

sein.


<< >> Up Title Contents Index