Funkcja mediany PostgreSQL

Funkcja mediany PostgreSQL
Mediana obliczająca jest zobowiązana do uzyskania środkowej wartości z danych. Podobnie jak wiele innych funkcji, PostgreSQL zapewnia szeroki zakres wszechstronności w radzeniu sobie z funkcją mediany. Dotyczy znalezienia wartości mediany z kolumny tabeli, na której stosuje się medianę. W przeciwieństwie do liczby funkcji kruszywach postgresql, sum. Mediana to funkcja zdefiniowana przez użytkownika.

W prostych funkcjach arytmetycznych istnieją różne środki i wzory do znalezienia mediany w dowolnych dostarczonych danych w postaci zwykłej lub w formie tabelarycznej. Podczas gdy w przypadku systemów bazy danych używamy niektórych innych wbudowanych funkcji połączonych, aby uzyskać wartość mediany. Ten artykuł opracuje niektóre z najbardziej wydajnych technik, a także funkcję ręczną stworzoną przez nas w celu pobrania mediany z danych w PostgreSQL.

Użycie percentile_count () i percentile_disc ()

Oba są sposobem na uzyskanie mediany w nieco inny sposób. Ponieważ różnica w ich wynikających wartościach opiera się na ich metodologiach. Percentyl odnosi się do przedstawienia wartości danych z posiadaniem procentu za sto. Ale dla mediany używamy (0.5) Wartość. Główną różnicą między obojgiem jest to, że percentile_count () interpoluje wartość, a jej działanie opiera się na ciągłym rozkładowi wartości, podczas gdy percentile_disc () zwraca wartość z podanych danych i opiera się na obliczaniu percentyla na dyskretnym rozkładowi rozkładu.

Składnia dla obu tych percentyl jest:

Wybierz percentyle_count (0.5) w grupie (kolejność x) z wartości (a), (b), (c), (d)) v (x);
Wybierz percentyl_disc (0.5) w grupie (kolejność x) z wartości (a), (b), (c), (d)) v (x);

Dla danych wartości percentile_disc zwróci jedyne wartości obecne w danych. Percentile_count oblicza medianę dla wartości. Na przykład między liczbami równymi. W powyższym przykładzie percentile_count da „5” liczbę między wartościami 3 i 7. A percentile_disc pokazuje 7 z zstępujących. Ponieważ wartość tej funkcji jest zawsze z dostępnych danych. Dlatego zapewnia najbliższą wartość mediany po obliczeniach.

Ponieważ dane w PostgreSQL są obecne w relacjach (tabela), percentyl jest stosowany w kolumnie wartości liczbowej (wynagrodzenie). Stworzyliśmy tabelę o nazwie profesor. Poniższe zapytanie pomoże nam najpierw zilustrować atrybuty tabeli, a następnie zastosować na nim percentile_disc ().

>> Wybierz * od profesora; Wybierz percentyl_disc (0.5) w grupie (zamówienie według zawodu.wynagrodzenie) od profesora;

Pierwsza połowa zapytania wyświetli zawartość tabeli. podczas gdy druga część wybierze wartość percentyla. Tutaj zastosowano zamówienie według klauzuli. Ta klauzula zorganizuje elementy odpowiedniej kolumny w kolejności rosnącej, a następnie zastosuje na niej funkcję. Kolumna (pay) jest używana do wykonania tego zapytania.

Po wykonaniu wynik wynosi 51, odrębną wartość uzyskiwaną przez funkcję percentylową. Aby było to bardziej jasne, do ustalenia każdego elementu kolumny w kolejności rosnącej używana jest prosta „ntile”.

>> Wybierz profesor. Pay, ntile (100) Over (zamówienie profesora. wynagrodzenie) od profesora;

Wyżej wymienione polecenie przekazuje kolumnę „Pay” z tabeli. Ułatwiło to zrozumienie, jak będzie działać percentile_disc. Ponieważ całkowite liczby w kolumnie „Pay” to 8 rzędów, które są równe. Dlatego trudno jest uzyskać dokładny punkt średni. DISC () pójdzie na najbliższą wartość. To jest „51” zgodnie z kolejnością rosnącą.

W przypadku percentile_count reszta polecenia jest taka sama, ale funkcja jest zmieniana z dysku na cd. Jak sama nazwa wskazuje na działanie percentyla_kont, wartość jest w postaci ciągłości, co oznacza do tej pory nie ma końca. Stąd wynik będzie zawsze w postaci dziesiętnej. To obdarzy połowę dwóch sąsiednich liczb. Innymi słowy, funkcja ta pobiera dwie liczby obecne w środku kolumny, w przypadku równych liczb.

>> Wybierz percentyl_count (0.5) w grupie (zamówienie Profrssor.wynagrodzenie) od profesora;

Między 51 a 52 to „51.5 ”to dokładna ciągła wartość mediany w kolumnie„ Pay ”.

Możesz także zmienić wartość percentyla w dowolnej funkcji. Na przykład używamy 0.25, 0.5 i 0.75 jako parametr w Percintile_DISC ().

Percentile_disc (0.25)
Percentile_disc (0.5)
Percentile_dic (0.75)

Wszystkie wartości są wyświetlane zbiorowo w jednym rzędzie za pomocą tej składni w funkcji. Rozważ snap, który załączyliśmy, który pokazuje ntile kolumny, wszystkie wartości są sortowane w kolejności rosnącej. Jeśli 0.5 prowadzi do wartości „51”, a następnie dla 0.25, jest 8 i dla „0.75 ”to 77. Ponieważ jest to liczba obecna w ID 4, więc dla 0.25, oblicza się odpowiednio zgodnie z czwartym identyfikatorem. I podobne jest w przypadku 0.75.

Użycie funkcji dla mediany

Aby egzekwować funkcję obliczania mediany tabeli, musimy mieć nową tabelę próbki. Po utworzeniu wartości zostaną dodane, aby uczynić je w stanie funkcjonalnym. Tabela tymczasowa jest używana, ponieważ nie potrzebujemy tych danych przez dłuższy czas w bazie danych.

>> Utwórz tymczasową medianę tabeli (ID Serisl, klasa Varchar (50), Nazwa Varchar (50), klasy dziesiętna (5,1)); >> Wstaw do mediany (klasa, nazwa, ocena) wartości („x”, „y”, z);

Po wstawieniu wartości zobaczymy, jak wprowadzono dane. W tym celu użyj instrukcji Select.

>> Wybierz * z mediany,

W tej funkcji mediana dla każdej klasy zostanie obliczona osobno. To partycjonowanie jest zgodnie z kolumną klasową. Dane są sortowane zarówno w zamówieniach ASC, jak i DESC. Nowa funkcja jest inicjowana tutaj numer wiersza (). To przyniesie numer wiersza, a następnie zastosuje operacje zgodnie z nim. Rzućmy okiem na kod. Następnie rozbijemy to, aby zobaczyć, co się tutaj dzieje, aby uzyskać medianę.

Używane jest komenda Wybierz, która wprowadza podział. W tym rozdzielczości używa tego numeru wiersza (), który ułoży wiersze w kolejności rosnącej i malejącej. Dla każdej klasy zamówienia są używane dla numerów wierszy.

Ilekroć szukasz mediany na liście posiadania wartości w liczbach, odpowiedź zawsze polega na przyjmowaniu średniej dwóch średnich. Dzieje się tak w tym poleceniu, aby uzyskać medianę.

Rowasc in (RowDesc, RowDesc - 1, RowDesc + 1)

Wynikowy jest odesłany z podziału do głównego zapytania. A następnie obliczana jest średnia. Za matematykę otrzymujemy 72.0, oczekiwany w połowie w przypadku dziwnej listy wartości. Podczas gdy w nauce jest to 76.5. Ma parzystą liczbę przedmiotów naukowych, więc otrzymujemy połowę 72 i 81.

Wniosek

Mediana funkcji PostgreSQL sprawia, że ​​znalezienie środkowego punktu w danych zwykłych lub tabelarycznych jest łatwiejsze niż obliczenie go ręcznie. Chociaż jest to funkcja utworzona przez użytkownika, używa niektórych wbudowanych funkcji, aby pobrać odpowiedni rekord. Percentile_cont i percentile_disc są uważane za rdzeń omawianego tematu. Jako ich ciche wsparcie w zapewnianiu mediany koncepcji w funkcji jest niezwykłe. Jednak wszystkie te funkcje wystarczą do znalezienia mediany.