Last_day … nie, wcale nie ostatni dzień bloga :-)



Marcinie, po co takie funkcje? To tylko na pozór zabawne rozwiązanie.

Zgodnie z dokumentacją cyt:

"The Oracle/PLSQL LAST_DAY function returns the last day of the month based on a date value"

Funkcja zwraca dla danej daty ostatni dzień miesiąca, czyli last_day( 14 maja 2015) da wynik 31 maja 2015 roku, i po co to ?


Oczywiście można w ten sposób uzupełnić formatowanie, to jest jeżeli masz tylko miesiąc i rok to możesz dopisać ostatni dzień miesiąca, czasami tak trzeba, taki jest wymóg.


Jednak w mojej praktyce wykorzystanie tej funkcji jest zgoła inne. Bardzo często mam do czynienia z tak zwanymi kostkami danych, które mają zebrane stany dzienne, w hurtowni codziennie gromadzone są dane i są datowane. Przetwarzanie ogromnych zbiorów danych z jednej strony wymaga zasobów (siły maszyny), Twego oczekiwania (czasu)  i na wykresach też tylko punkty się prezentuje. Innymi słowy wystarczą stany na koniec miesiąca, by dane ograniczyć, tylko skoncentrować się na końcach miesięcy wystarczy prosty trik sprowadzający się do tego by dane z tabeli, datowane na dzień DATA_DANYCH sprawdzać, czy to jest właśnie koniec miesiąca, czyli 

czy last_day ( DATA_DANYCH ) = DATA_DANYCH

jeżeli tak, to analizuję, biorę dane z rekordu do obliczeń, jak nie to pomijam. I bez takiego wsparcia analityk danych by padł*

To samo na obrazkach i przykład do poćwiczenia pod linką.

W.





*Analityk danych oczywiście by nie padł, bo nie taka przecież jego natura, nie poddaje się tak łatwo... Jest jak japoński poborca podatkowy. Analityk danych na przykład  utworzyłby sobie tabelę, do której by zapisywał daty końca miesięcy i porównywałby sobie datę danych z datą pobieraną z utworzonej przez siebie dodatkowej tabeli, z ręki wpisał daty, może jeszcze inaczej.



1 komentarz: