Guten Morgen, ich bin neu in Sachen PostgreSQL und bin jetzt an ein Problem gestoßen, welches ich eventuell nicht ganz verstehe und auch keinen richtigen Ansatz für finde. Ich habe schon im Forum gesucht und auch manche Inspiration gefunden, jedoch führten diese nicht zum gewünschten Ziel.
Also nun zu meinem Problem.
Ich habe einen Table mit Projekten, darin enthalten ist Startzeitpunkt, Endzeitpunkt, sowie Bemerkung und Projektname. Meine Abfrage soll die Spalte Bemerkung nach einem Begriff durchsuchen, dies löste ich mit bemerkung ILIKE '%begriff%'
. Darauf sollten dann aus Startzeitpunkt und Endzeitpunkt die Dauer des Projekts berechnet werden und und dann die Summe der Dauer aller Projekte mit besagtem Begriff berechnet werden.
SELECT SUM(Endzeitpunkt - Startzeitpunkt) WHERE bemerkung ILIKE '%begriff%'
Jetzt soll es aber auch möglich sein, dass mehrere Begriffe abgefragt werden. Die Eingabe erfolgt über eine Maske auf einer Internetseite, sodass diese als ein String weitergegeben wird.
Dann bin ich auf unnest(string_to_array('begriffe',', ')
gestoßen, welches mir bei
SELECT unnest(string_to_array('begriffe',', ')
und der richtigen Eingabe “Begriff1, Begriff2, Begriff3” auch diese 3 Begriffe als Rows ausgibt.
Jedoch weiß ich nicht, wie ich damit jetzt weiter arbeiten kann, ist es möglich diese Begriffe aus den Rows irgendwie zu verwenden in meiner WHERE-Clause oder bin ich komplett auf dem Holzweg?
Am Ende sollen in der ersten Spalte die Begriffe stehen und in der zweiten immer passend dazu die Gesamtdauer der Projekte, also im Endeffekt ein GROUP BY durch die Suchbegriffe.
Begriffe Gesamtdauer
Begriff1 02:00:00
Begriff2 01:45:00
Begriff3 05:37:00
Ich hoffe mein Anliegen ist einigermaßen zu verstehen.
Über jegliche Denkanstöße und Tipps wäre ich sehr dankbar.
Grüße Morth