Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
problem z postgresql
30-10-2012, 12:19,
#1
Sad  problem z postgresql
Witam,

Może trochę offtopic, ale nie daję rady zrobić pozornie prostej rzeczy w postgresie:
Mam do zrobienia mapkę z nałożonymi wykresami kołowymi pokazującymi wartości 5 zmiennych w różnych punktach. Wśród wartości zdarza się NULL, ale nic się nie stanie, jeśli będzie zwykłe 0. Chciałbym uzależnić wielkość wykresu od automatycznie tworzonej sumy zmiennych dla punktu (czyli suma w rzędach, a nie w kolumnach).
Można to zrobić łatwo i przyjemnie w Excelu i potem eksportować dane do Qgis, ale przyznam, że przy sporej liczbie danych i często zmieniających się wartościach wolałbym mieć sumowanie w bazie danych...

Pozdrawiam,
Markus
31-10-2012, 11:44,
#2
RE: problem z postgresql
Sumować można bezpośrednio w QGISie wykorzystując kalkulator pól w tabeli atrybutów. Ma to jednak tą wadę, że nie odbywa się automatycznie (po każdej zmianie pól składowych sumy trzeba odpalić kalkulator i przeliczyć wszystko od nowa). Zawsze to jednak dużo lepsze niż przerzucanie danych do EXCELA i odwrotnie.

W Postgresie musiałbyś zrobić triggera, który po dokonaniu zmian obliczy sumę i wstawi do tabeli.
31-10-2012, 13:16,
#3
RE: problem z postgresql
Dzięki za pomysł z kalkulatorem pól. Co do triggera, to chyba nie jest konieczny, dane do mapki czerpię z widoku, który sumuje dane dla poszczególnych punktów według kolumn (Mam kilka prób z danego punktu i chwilowo bardziej interesują mnie sumy, niż średnie czy inne odchylenia pomiędzy próbami). Gdyby udało się w tym samym widoku, albo w drugim, powiązanym, dołożyć sumy "w poprzek" dla punktów, byłoby super.
Pozdrawiam,
Markus
31-10-2012, 13:23, (Ten post był ostatnio modyfikowany: 31-10-2012, 13:52 {2} przez Rayo.)
#4
RE: problem z postgresql
Masz rację, jeśli chcesz wykorzystać widok to nie trzeba triggera.
Jak znajdę chwilę to sprawdzę i podeślę Ci kod jak to zrobić w SQL.
Poniżej zapytanie SQL, które tworzy widok z sumowaniem wierszy.
Dane są pobierane z trzech kolumn z tabeli i przenoszone do widoku, w którym tworzona jest czwarta kolumna z sumą.
Mam nadzieję, że o to Ci chodziło.


CREATE OR REPLACE VIEW gis.sumy AS
SELECT "test-sumy".kolumna1, "test-sumy".kolumna2, "test-sumy".kolumna3, "test-sumy".kolumna1 + "test-sumy".kolumna2 + "test-sumy".kolumna3 AS suma
FROM gis."test-sumy";
31-10-2012, 14:11,
#5
RE: problem z postgresql
Dzięki za kod, właśnie o taki mi chodziło. Przerobiłem i działa. W sumie, próbowałem już czegoś podobnego, problem z "niedziałaniem" polegał głównie na mojej słabej znajomości SQL i na użyciu NULL zamiast "0", przez co oczywiście zamiast sum pojawiały się NULLe.

Jeszcze raz dzięki, pozdrawiam,
Markus


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  problem z rastrami przez PostgreSQL marcinek73 0 7 768 16-04-2011, 10:24
Ostatni post: marcinek73

Skocz do: