Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie zwracające średnią 5 ostatnio wpisanych rekordów, ...
TylkoPolak
post 27.12.2009, 18:23:53
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 27.12.2009

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


Witam wszystkich.

Męczę się długo z powyższym zagadnieniem.

Zapytanie zwracające średnią pięciu ostatnio wpisanych liczb(rekordów).

Próbowałem
SELECT AVG(liczba) AS liczba1 FROM liczby GROUP BY liczby DESC LIMIT 5;

Powyższe zapytanie tworzy jednak średnią wszystkich pól z tabeli, a ja potzrebuję 5 ostatnio dodanych. LIMIT widocznie w tej sytuacji nie ma prawa głosu.

Dziękuję z góry za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
darko
post 27.12.2009, 18:29:15
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


a nie ORDER BY liczby DESC LIMIT 5 ?

Ten post edytował darko 27.12.2009, 18:29:40


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
TylkoPolak
post 27.12.2009, 18:37:50
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 27.12.2009

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


dokładnie ORDER BY, wpisałem złą zkładnię...

pytanie z order właśnie nie zwraca poprawnego wyniku, tylko średnią wszystkich elementów

ktoś może zna alternatywne podejście do tej sprawy
Go to the top of the page
+Quote Post
darko
post 27.12.2009, 18:45:43
Post #4





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


  1. SELECT AVG(liczba) FROM liczby ORDER BY liczba DESC LIMIT 5;
? A masz w tabeli kolumnę np. data_dodania typu np. datetime ?

Ten post edytował darko 27.12.2009, 18:49:20


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
TylkoPolak
post 27.12.2009, 18:54:03
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 27.12.2009

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


To zapytanie zwraca średnią wszystkich elementów,

mam taką tabelę, próbowałem coś pod tym kontem ale nie wiem jak
Go to the top of the page
+Quote Post
darko
post 27.12.2009, 18:58:12
Post #6





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


możesz dodać jedną kolumnę data_dodania typu datetime, jak robisz insert to jako wartość wstawiasz do tego pola NOW(), następnie zapytanie będzie wyglądało tak:

  1. SELECT AVG(liczba) FROM liczby ORDER BY data_dodania DESC LIMIT 5;


Ten post edytował darko 27.12.2009, 18:58:34


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
korro
post 27.12.2009, 19:11:27
Post #7





Grupa: Zarejestrowani
Postów: 259
Pomógł: 42
Dołączył: 8.04.2005
Skąd: Mława

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


Może coś takiego:
  1. SELECT avg(a.liczba) FROM (
  2. SELECT liczba FROM liczby ORDER BY liczba DESC LIMIT 5) a;


--------------------
Go to the top of the page
+Quote Post
TylkoPolak
post 27.12.2009, 19:51:44
Post #8





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 27.12.2009

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


Dokładnie to jest dobra wersja. Co prawda kilkadziesiąt minut wcześniej kolega podyktował i ją przez tel ale koledze "korro" i tak należą się punkty za pomoc. Tak to jest ja nie można nic zdziałać to nie można, a czasem dobre podpowiedzi idą parami:) Dzięki również dla "darko".
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 10:43