Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dane miesięczne w ujęciu tygodniowym
phpion
post
Post #1





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Mam tabelę z danymi:

201501;100
201502;80
...

czyli rok i miesiąc (jako liczba) oraz jakaś wartość liczbowa. Kolumn w sumie jest nieco więcej i dla każdego miesiąca mam tak naprawdę ~1800 rekordów ale nie ma to większego znaczenia dla problemu. Potrzebuję teraz przedstawić dane w ujęciu tygodniowym tj. jaka wartość przypada na każdy tydzień roku. Problemem jest tutaj fakt, ze tygodnie mogą zachodzić na 2 miesiące. Czy jest jakiś sprytny sposób żeby to ogarnąć po stronie bazy?

Na chwile obecną tworzę tabelę tymczasową dla pojedynczych dni na zasadzie selectów połączonych unionami (mam więc 365 takich selectów). Dla każdego dnia wstawiam:
wartość dla miesiąca / liczba dni w miesiącu
a następnie korzystam z tej tabeli z użyciem funkcji week(). Może jest jakieś szybsze rozwiązanie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Napisałem przecież: jeśli wartość dla stycznia to 310 to na jeden dzień stycznia przypada 10, do tabeli tymczasowej wstawiam więc 10 dla 2015-01-01, 2015-01-02, ..., 2015-01-31. Mając wartość rozbitą na dni mogę skorzystać z funkcji week(). Rozwiązanie niestety nie jest wybitnie wydajne z racji tabeli tymczasowej tworzonej przy każdym wyświetleniu raportu. Jeśli nikt nie zasugeruje niczego innego to chyba zrobię osobną tabelę z odpowiednimi indeksami zawierającą już rozbite dane. Tabela byłaby aktualizowana triggerem w momencie zasilania tabeli zagregowanej. Wydajność powinna być lepsza ale kosztem zdublowanie danych.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 06:02