• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Postgres rekurencyjne zapytanie

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
467 wizyt
pytanie zadane 3 czerwca 2021 w SQL, bazy danych przez Gerlach Nowicjusz (220 p.)

Witam, mam do zrobienia zapytanie rekurencyjne do tego zadania:

"2. Za pomocą hierarchicznego (rekurencyjnego) zapytania (https://www.postgresql.org/docs/9.5/querieswith.html) pobierz dane wszystkich pracowników posortowane zgodnie z zajmowanym przez nich miejscem w hierarchii organizacyjnej firmy. Zacznij od stanowiska najwyższego szczebla tj. dyrektora (Karolina Karolińska, bez przypisanej wartości w kolumnie przełozony_id). Do wyników dołącz kolumnę szczebli_do_najwyzszego_stanowiska (dyrektorowi przypisz wartość równą 0, patrz tabela 2). Następnie skonstruuj drugie zapytanie, które pobierze w pierwszym wierszu wyników jakiegoś pracownika najniższego szczebla np. Adama Adamskiego, drugi wiersz będzie zawierał jego przełożonego itd., aż do ostatniego wiersza zawierającego dane dyrektora. Do wyników dołącz kolumnę szczebli_od_najnizszego_stanowiska."

Podpowiedź z instrukcji:

Mój kod:

WITH RECURSIVE hierarchia_pracownikow AS (
 SELECT *, 0 AS szczebli_do_najwyzszego_stanowiska
 FROM pracownik
 WHERE przelozony_id IS NULL 
 UNION ALL
 SELECT p.*, (szczebli_do_najwyzszego_stanowiska + 1) as szczebli_do_najwyzszego_stanowiska
 FROM pracownik AS p
 JOIN hierarchia_pracownikow AS hp ON hp.przelozony_id=p.przelozony_id )
  SELECT * FROM hierarchia_pracownikow;

I sprawa wygląda tak, że obojętnie w jaki sposób dam warunek złączenia, to zawsze mam tylko taki wynik:

Czy mógłby ktoś podpowiedzieć co jest źle w warunku złączenia? Godzinę się z tym męczę.

 

 

 

1 odpowiedź

0 głosów
odpowiedź 14 czerwca 2021 przez bwaluk Mądrala (5,440 p.)
 JOIN hierarchia_pracownikow AS hp ON p.przelozony_id=hp.pracownik_id

 

Podobne pytania

+1 głos
1 odpowiedź 1,991 wizyt
pytanie zadane 24 czerwca 2018 w SQL, bazy danych przez Vxid Functixn Bywalec (2,720 p.)
+1 głos
2 odpowiedzi 192 wizyt
0 głosów
2 odpowiedzi 337 wizyt

93,187 zapytań

142,202 odpowiedzi

322,012 komentarzy

62,513 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2365p. - dia-Chann
  2. 2326p. - Łukasz Piwowar
  3. 2315p. - Łukasz Eckert
  4. 2269p. - Tomasz Bielak
  5. 2235p. - Łukasz Siedlecki
  6. 2192p. - CC PL
  7. 2119p. - rucin93
  8. 2006p. - Michal Drewniak
  9. 1946p. - Adrian Wieprzkowicz
  10. 1901p. - Mikbac
  11. 1744p. - rafalszastok
  12. 1734p. - Anonim 3619784
  13. 1586p. - Dawid128
  14. 1520p. - Marcin Putra
  15. 1480p. - ssynowiec
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...