Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Uśrednianie wartości liczbowych
sadistic_son
post
Post #1





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Cześć.
Mam tabelę sensor a w niej pole `sensor` które przyjmuje obecnie wartości od 1 do 9.

Pierwotnie były to wartości 1-5 . Pierwotnie liczyłem tylko ilość średnich:
  1. SELECT AVG(sensor) FROM `sensor`


Po czasie doszły wartości od 6 do 9 i tutaj zaczyna się komplikacja bo nie mogę liczyć średniej z wartości 1-9 tylko nadal 1-5 ale przy następujących kryteriach:
- 6 ma być traktowane jako 3
- 7 jako 2
- 8 jako 3
- 9 jako 4

Tak więc dla przykładu:
- 6,6,6,6,6,3,3 powinno dać średnią 3 (bo 6 to 3)
- 9,4,4,4, średnia 4 (bo 9 to 4)
- 9, 7 da średnią 3 (bo 7 to 2 a 9 to 4, czyli 2 i 4 = 3)

Pomóżcie ułożyć zapytanie.
Powinno to być coś w stylu: oblicz średnią ale 7 traktuj jako 2, 8 traktuj jako 3, 6 traktuj jako 3, 9 traktuj jako 4.


Za cienki jestem z SQLa żeby to ogarnąć.

Dzięki z góry.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sadistic_son
post
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Pozwolę sobie zacytować Donalda Trumpa: "Sounds good, does not work".

Niestety:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in XXXXXX on line 441

Linijka 441:
  1. $val = mysql_result(mysql_query("SELECT AVG(CASE `sensor` WHEN 6 THEN 3 WHEN 7 THEN 2 WHEN 8 THEN 3 WHEN 9 THEN 4 ELSE `sensor` END CASE) FROM `sensor` "), 0);



EDIT: Zakładam że Twoje poniższe "A błąd gdzie?" napisałeś zanim wkleiłem w treści obecnego posta powyższy błąd.

Ten post edytował sadistic_son 17.08.2017, 14:11:59
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: 13.10.2025 - 21:29