AdSQL_Window_01 Flashcards

1
Q

Auf welche Befehle sind Window Functions limitiert? Und warum?

A
  • Window Functions sind limitiert auf SELECT und ORDER BY.
  • Wenn WHERE erlaubt wäre, könnte je nach Reihenfolge der Ausführung unterschiedliche Zeilen eliminiert werden. Dadurch verändert sich das Ergebnis.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wie kann ich die Anzahl der Tiere anzeigen lassen?

A

Einfach mit

COUNT(*) OVER () AS number_of_animals

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wie kann ich die Anzahl der Tiere seit 2017 anzeigen lassen?

A

Indem ich in WHERE einen Filter setze.

Das zeigt die Bedeutung der logischen Bearbeitungsfolge.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wie kann ich die Anzahl der Tiere, aufgeteilt nach Spezies anzeigen lassen?

A

COUNT(*) OVER (PARTITION BY species)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was wird diese Abfrage zurückgeben?

SELECT MIN(admission_date)

FILTER (species) OVER ()

FROM animals;

A

Einen invaliden Syntax Error.

FILTER (WHERE species = ‘dog’) OVER ()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wie kann ich die FRAME BOUNDARIES angeben?

A

ROWS | RANGE | GROUPS

BETWEEN

UNBOUNDED PRECEDING (Anfang der Partition)

1 PRECEDING

1 FOLLOWING

CURRENT ROW

AND

UNBOUNDED FOLLOWING (Ende der Partition)

1 PRECEDING

1 FOLLOWING

CURRENT ROW

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wie kann ich die Bereiche von Frames definieren?

A

Als ROWS, RANGE oder GROUPS.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was muss ich bei RANGE FRAMES beachten?

A

Range Frames sind spezifiziert durch Wertebereiche und daher Datentypabhängig.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was sind Frames?

A

Ein Frame ist ein Subset von einer Partition.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was ist der Default-Wert bei Frames?

A

range between unbounded preceding and current row

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Frames: Was bedeutet UNBOUNDED PRECEDING?

A

Alle Zeilen vor der aktuellen Zeile werden berücksichtigt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Frames: Was bedeutet UNBOUNDED FOLLOWING?

A

Alle Zeilen nach der aktuellen Zeile werden berücksichtigt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Ein Beispiel, um den Unterschied zwischen GROUP BY und WINDOW Funktionen zu erläutern.

A
  • Mit GROUP BY werden die einzelnen Zeilen in Gruppen eingeteilt, auf die dann nicht mehr zugegriffen werden kann.
  • Wenn ich z.B. jeden einzelnen Mitarbeiter auflisten möchte und zusätzlich in einer Spalte das höchste Gehalt aus der Abteilung angeben möchte, muss ich das mit einer Window Funktion machen.
    • Select employee_name, department, salary, max(salary) over (Partition by department) as top_salary from employee
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Ein Beispiel für die Verwendung von Window Functions?

A
  • Ein interessantes Feature sind positionale Funktionen wie LEAD() und LAG().
  • Dadurch kann ich die vorherige oder nachfolgende Werte aus einer anderen Spalte im gleichen WINDOW bekommen.
  • Das ist z.B. praktisch, wenn ich die prozentuale Veränderung zum Vortag angeben möchte.
  • Wichtig dafür ist die ORDER BY Klausel
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was kommt hier heraus?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was kommt hier heraus?

A