![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 1 Dołączył: 2.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam w bazie mysql dane liczbowe o zakresie -50 do 150
Jak pobierając je dokonać uśrednienia zależnego od zewnętrznego paramatru - liczby np 8.255 (lub innej). Trzeba ilość rekordów w zapytaniu podzielić przez parametr w wyniku czego powstaną 'paczki" których elementy należy dodać do siebie i podzielić przez liczbę elementów w "paczce". Niby proste, ale nie wiem jak toto "zmajstrować", to co wyrzeźbiłem nie do końca działa porawnie (np gdy w paczce końcowej jest mniej elementów nić parametr to nie dokonuje się uśrednienie)
Ten post edytował Mustava 7.01.2010, 22:15:56 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Jak pobierając je dokonać uśrednienia zależnego od zewnętrznego paramatru - liczby np 8.255 (lub innej). Tzn? Trochę jaśniej? Ale strzelam w ciemno, że problem może tkwić w braku nawiasów, a stąd w błędnej kolejności działań:
Chyba, że to ma tak być. ![]() -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 1 Dołączył: 2.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Jest np 1650 rekordów
Dzielę tą ilość przez 8.255 Wychodzi, że muszę wyliczyć średnią wartość z każdych 8 (a może 9) rekordów i zapisać jako jedna wartość i tak następne 8 rekordów, itd Jeżeli na końcu zostanie mi np 6 rekordów to już ich nie wyliczy - nie mam ostatniej średniej. Może można zrobić to po stronie mysqla? przykładowy wynik: Kod [b]158[/b] 20.587628866 .... x:19 x:38 x:57 x:77 x:97 [b]159[/b] 21 x:20 x:40 x:60 x:80 x:100 [b]160[/b] 21.618556701 x:20 x:40 x:60 x:80 x:101 [b]161[/b] 21.824742268 x:21 x:42 Rekordów:970 - parametr:4.85 Naprawdę nikt nie wie? To chyba nie jest jakieś super skomplikowane dla kogoś kto "siedzi" w programowaniu - dla mnie jak na razie trochę za trudne. Mój problem może być chyba podobny do przygotowania danych do wykreowania wykresu (np dwa tysiące danych do wyświetlenia na wykresie na osi X na obrazku o szer np 300px - trzeba chyba obliczyć średnie wartości - np 100 wartości) PS nie chodzi o ew. problem braku nawiasów Ten post edytował Mustava 7.01.2010, 20:54:59 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 253 Pomógł: 31 Dołączył: 30.03.2009 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
jeśli dane są w granicach od -50 do 150 to gdyby wykonywać wykres zmieściłyby się w wysokości ekranu. jeśli wysokość ma być mniejsza to wystarczy daną liczbę podzielić przez np 2 . wysokość wykresu będzie 2 razy mniejsza ( z tym 8... wykres byłby zbyt płaski). jeśli chodzi o ilość danych to każda liczba może być przedstawiona jako jeden piksel wzdłuż ekranu.
gdy ekran ma rozdzielczość 800px szerokości na wykresie możesz przedstawić około 800 danych. skrypt może kontrolować ilość danych i tak jak kombinujesz łączyć je w paczki, aby nie przekroczyć szerokości dostępnego ekranu. np przy ilości danych 2300 łączyć w paczki po 3 dane i brać średnią arytmetyczną. możesz zgłosić się na pw to pogadamy. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 1 Dołączył: 2.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź.
Mogę oczywiście na PW, ale może kiedyś ktoś będzie miał podobny problem więc... 1. Nie chodzi mi o wysokość - os Y, oczywiście tak jak piszesz, jeżeli byłaby konieczność to wszystkie wartości podzielić przez taką sama liczbę i OK 2. Chodzi o os X - szerokość. chcę mieć ok 200 danych na szerokość (nie chce "zagęszczać"). Potrzebuję toto do trochę czegoś innego, ale możemy "jechać" dalej na przykładzie wykresu ![]() A więc proszę o pomoc w prawidłowym dzieleniu na paczki (jeżeli to co ja "wyczyniłem", odbiega od standardu czy jest nieco chore ![]() Ew. link z przykładem(mi). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 09:17 |