Mam tabelę zawierającą około 100 kolumn i 30000 wierszy. wyglądać tak:Stan dwóch kolumn w różnych wierszach w PostgreSQL
site_id cell_id sector_id value1 value2
1 1 1 70 23
1 2 1 40 20
1 3 1 67 35
1 5 2 42 60
1 6 2 65 30
1 7 2 62 62
2 11 1 67 11
2 12 1 45 22
2 13 1 65 15
Z tego samego sector_id jednego site_id, jeśli wartość1> = 65 niż jakikolwiek CELL_ID w tej samej branży z wartość2 < 25 byłyby klasyfikowane jako „LOW_LOAD_CELL”. Pożądany wynik byłby:
site_id cell_id sector_id value1 value2 cell_status
1 1 1 70 23 LOW_LOAD_CELL
1 2 1 40 20 LOW_LOAD_CELL
1 3 1 67 35
1 5 2 42 60
1 6 2 65 30
1 7 2 62 62
2 11 1 67 11 LOW_LOAD_CELL
2 12 1 45 22 LOW_LOAD_CELL
2 13 1 65 15 LOW_LOAD_CELL
...
nie wiem jak podejść w SQL, uczciwie. Próbowałem z WHEN CASE, ale ułożyłem się, gdy potrzebowałem napisać warunek dla value2.
Twoje przykładowe dane nie są zgodne z Twoimi zasadami. –
Jeśli był to ostatni wiersz z sector_id = 2, miałeś rację, edytowałem. Dziękuję Ci. – jovicbg
To nie pomoże i jest mi przykro z tego powodu, ale myślę, że twoim problemem jest twoja próba uzyskania unrelationnal danych z relacyjnej bazy danych z językiem, który pasuje do relacyjnych baz danych (SQL) ... Byłbym bardzo zaskoczony, gdyby model, który zawiera relacje ze 100 kolumnami, spotkał się z trzecią normalną formą ... – Arkhena