PostgreSQL zapytanie

0

Hej,

przykładowe dane


data od     |       data do      |       id         |    user_id    |     powod    |     data_do_case

2017-03-21 | 2017-03-22 | 1 | 45 | wakacje |

2017-03-21 | 2017-03-22 | 1 | 45 | wyjazd | 2017-03-22

2017-03-21 | 2017-03-22 | 2 | 45 | wakacje |

dla tych danych zapytanie powinno zostawić wiersz 2 i 3
mam problem z napisaniem zapytania, którym to osiągnę. Generalnie powinienem szukać tych wierszy gdzie id w przypadku gdy się powtarza wybrać ten z powodem 'wyjazd', a gdy się nie powtarza to ten który jest dostępny

0
select * from (
select *,
  rank() over(partition by user_id, id order by user_id, data_do_case ) lp
  from t
) x where lp=1

pozapytanie tylko dlatego, że funkcji window nie można dać we WHERE.
Oczywiście to jeden z kilku sposobów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1