Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 0 Dołączył: 26.08.2009 Skąd: Zamojsce Ostrzeżenie: (0%)
|
(IMG:http://images48.fotosik.pl/188/36eb6354103b063bm.jpg)
SCREEN Na screenie widać prosty schemat tabeli w bazie danych Na dole struktura a na górze rekordy Mamy 8 dni i 4 produkty dla których trzeba policzyć Popyt średni i Odchylenie Standardowe Kolega proponuje tak obliczać Pśr i OS Cytat("Norbert") $pytanko="SELECT popyt_klej FROM popyt"; $rezultat = mysql_query($pytanko) or die("Błąd zapytania"); $tablica = mysql_fetch_array($rezultat); $n=count($tablica); $srednia=0; for($i=0;$i<=$n;$i++) { $srednia=$srednia+$tablica[$i]; } $srednia=$srednia/$n; for($i=0;$i<=$n;$i++) { $wyraz_srednia=$tablica[$i]-$srednia; // tutaj do zmiennej $wyraz_srednia przypisujesz roznice danej liczby i sredniej wszystkich liczb $tablica2[$i]= $wyraz_srednia * $wyraz_srednia; } for($i=0;$i<=$n;$i++) { $wynik=$wynik+$tablica2[$i]; //dostajesz sume tych wszystkich kwadratow roznicy wyrazu i sredniej; } $wynik=sqrt($wynik); echo "<h1>Srednia: ".$srednia."</h1><P>"; echo "<h1>Odchylenie: ".$wynik."</h1><P>"; Kod daje takie wyniki dla popyt_klej i popyt_srubki Srednia: 10 Odchylenie: 17.320508075689 Kod daje takie wyniki dla popyt_farba i popyt_drewno Srednia: 5 Odchylenie: 8.6602540378444 Powinna wyjść średnia dla popyt_klej: 160/8 czyli 20 Mam takie pytanie: Czy da radę napisać tak kod aby później była możliwość dodawania kolejnych wierszy Id=9, data, popyty dla poszczególnych towarów itd... oraz możliwość dodawania towarów, czyli chodzi mi o taki kod który by liczył Pśr i OS nawet gdy tabela będzie się rozrastać w 2 wymiarach Chyba nie ma sensu dla każdego towaru robić osobną tabelę w bazie danych. Takie rozwiązanie jakie prezentuje screen, że w jednej tabeli są wszystkie towary i wszystkie wartości popytu jest chyba najlepszy. Tylko problem z tym ciężkim do wymyślenia kodem. Jakby ktoś był w stanie coś wymyśleć to proszę o jakieś pomysły lub kontakt GG 3257134 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
Wartość średnia to prosta sprawa, robisz bowiem sumowanie wszystkich wartości w kolumnie i dzielisz przez liczbę wierszy.Najlepiej chyba będzie wykonać 2 zapytania. Pierwsze zwróci sumy każdej kolumny. Drugie zwróć liczbę wierszy w tabeli. To da nam średnią (IMG:style_emoticons/default/smile.gif)
Z odchyleniem standardowym gorzej... To pierwiastek z sumy kwadratów wartości rekordów podzielonych przez liczbę wierszy od których odjęto kwadrat średniej arytmetycznej. Najszybciej więc będzie zrobić coś podobnego do poprzedniego. Ale teraz nie tylko będziemy sumowali wartości rekordów, tylko wpierw je podniesiemy do kwadratu. Zwróconą sumę podzielimy przez liczbę rekordów i odejmiemy od tego kwadrat wyliczonej średniej. Całość zaś spierwiastkujemy (IMG:style_emoticons/default/smile.gif) Za chwilkę zrobię tabelkę i sprawdzę swoje rozumowanie (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
|
damianprz Obliczanie średniej i odchylenia standardowego 26.08.2009, 17:47:27
*OuTSideR* przy obliczaniu sredniej zmien znak <= na < ... 26.08.2009, 18:22:25
damianprz I co to da?
Próbowałem i nic
Powyższy kod bierze ... 26.08.2009, 21:20:22
damianprz Tylko jak zrobić
sumowanie wszystkich wartości w k... 26.08.2009, 22:19:13
thek Sumowanie wszystkiego w kolumnie:
[SQL] pobierz, p... 26.08.2009, 22:47:41
damianprz [PHP] pobierz, plaintext Średnia wynosi: 10.625, a... 27.08.2009, 11:59:54
thek Problemy które poruszasz w poście zaznaczyłem po o... 27.08.2009, 13:01:53
damianprz Na screenie widać 3 tabelki które zrobiłem wg twoj... 27.08.2009, 15:06:49
thek Bo z rozpędu nie dopisałem warunku łączenia
[SQL]... 27.08.2009, 15:59:16
damianprz Możesz mi sprawdzić czy to jest OK?
Do wyświetlani... 27.08.2009, 16:04:56
thek Kod wygląda poprawnie. W sumie chyba jedynie nie m... 27.08.2009, 20:02:28
damianprz Dzięki stary za pomoc
Powyższe obliczenia stosuje ... 27.08.2009, 21:46:24
thek No jasne. Zauważ, że grupujesz dane po id_towaru. ... 27.08.2009, 23:38:49
damianprz Oj kolego thek, co ja bym bez Ciebie zrobił
Dzięk... 28.08.2009, 00:00:18
thek A ja życzę powodzenia w kodzie php/html i analizie... 28.08.2009, 00:54:52
damianprz Ponoć ma być raczej pod koniec września tak żeby j... 28.08.2009, 18:21:36
thek Zapytanie sypie Ci błąd bo nie nadałeś aliasu dla ... 28.08.2009, 21:37:08
damianprz Już wcześniej ustawiłem wartości na double z obawy... 28.08.2009, 21:53:30
thek Nie dublujmy może tematów i skupmy się w jednym U... 28.08.2009, 23:31:14
damianprz [PHP] pobierz, plaintext UPDATE zapasy z LEFT JOIN... 29.08.2009, 11:40:41
thek Owszem Mam na laptopie swoim wszystko co potrzebn... 29.08.2009, 13:21:54
damianprz Już wszystko działa!
Instalka Vertrigo pomogła 29.08.2009, 13:28:35
thek Widzę, ze sugestia o fatalnym wpływie MySQL 3.X na... 29.08.2009, 16:20:12
MMaro Witam
odkopuje temat - ponieważ mam problem z ob... 21.06.2012, 17:50:42
thek Pytanie... Po co obliczać odchylenie samemu, skoro... 21.06.2012, 19:20:41 ![]() ![]() |
|
Aktualny czas: 17.12.2025 - 08:35 |