MudGuard: sql: Alle IDs suchen, die in Zeitraum x zum ersten Mal vorkamen

Beitrag lesen

Hi,

SELECT DISTINCT id 
FROM table
WHERE bedingung >= 2021
  AND NOT EXISTS (SELECT DISTINCT id FROM table WHERE bedingung < 2021)

das würde dann auch die finden, deren erstes Vorkommen bei bedingung = 2022 ist.

Paßt nicht so ganz zu

die in einem Zeitraum X (bei mir "das Jahr 2021) zum ersten Mal vorkamen.

Ob das performant ist, muss man am konkreten Fall untersuchen.

Evtl. ist es performanter (das muß man aber ausprobieren), hier mit MINUS zu arbeiten. also

SELECT DISTINCT id FROM TABLE WHERE bedingung = 2021
MINUS
SELECT DISTINCT id FROM TABLE WHERE bedingung < 2021

Was performance-mäßig besser ist, hängt von den Indizes, der Tabellengröße, der Anzahl der Treffer für beide Teile, Häufigkeit der Abfrage usw. ab.

cu,
Andreas a/k/a MudGuard