LoslegenKostenlos loslegen

INTERVAL-Arithmetik

Wenn du tatsächlich einen DVD-Verleih hättest, müsstest du hin und wieder überprüfen, welche Filme gerade an Kunden verliehen sind. In der letzten Übung haben wir gesehen, dass einige Datensätze in den Ergebnissen einen Wert von NULL für return_date hatten. In diesen Fällen war die Ausleihe noch nicht abgeschlossen.

Jede Ausleihe in der Tabelle film hat eine zugehörige Spalte rental_duration, die angibt, wie viele Tage ein Kunde eine DVD ausleihen kann, bevor die Ausleihe als überfällig gilt. In diesem Beispiel schließt du Filme aus, die einen Wert NULL für return_date haben, und wandelst außerdem rental_duration in den Typ INTERVAL um. Nochmal zur Erinnerung, hier ist eine Methode zur Durchführung dieser Umwandlung.

SELECT INTERVAL '1' day * timestamp '2019-04-10 12:34:56'

Diese Übung ist Teil des Kurses

Funktionen zur Datenbearbeitung in PostgreSQL

Kurs anzeigen

Anleitung zur Übung

  • Rechne rental_duration um, indem du es mit einem INTERVAL von 1 Tag umwandelst.
  • Zieh das rental_date vom return_date ab, um die Anzahl der days_rented zu berechnen.
  • Schließ Ausleihen mit einem Wert von NULL in return_date aus.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

SELECT
	f.title,
 	-- Convert the rental_duration to an interval
    ___ '1' ___ * ___.___,
 	-- Calculate the days rented as we did previously
    r.return_date - ___.___ AS days_rented
FROM film AS f
    INNER JOIN inventory AS i ON f.film_id = i.film_id
    INNER JOIN rental AS r ON i.inventory_id = r.inventory_id
-- Filter the query to exclude outstanding rentals
WHERE r.return_date ___ ___ ___
ORDER BY f.title;
Code bearbeiten und ausführen