Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Suma wybranych rekordów
Forum PHP.pl > Forum > Przedszkole
Pronigo
Witam mam tablicę o nazwie grunt a w niej pola: id, typ, cena. Chciałbym zsumować wszystkie rekordy cena jeżeli typ = coś tam, czytałem o SUM ale nie zrozumiałem nic z niego sad.gif

Aby to badziej zoobrazować:
SELECT suma[cena] FROM grunt WHERE id = x
mike
Boże Ty widzisz a nie grzmisz.
Jak nie zrozumiałeś? Przecież w dokumentacji przykłady sa takie że nawet ... zrozumie.

  1. SELECT SUM(cena) FROM grunt WHERE id = x
Balor
Witam, nie chce mi się tworzyć nowego wątku to dopisze sobie tu.
Mam taką tabele:

id typ data
3 k 2010-07-23 11:22:59
2 o 2010-07-23 11:27:30

i chodzi mi o to, że potrzebuje zapytanie, które wybierze mi z tej tabeli np.5 najczęściej występujących (id) w ostatnim miesiącu, ze zliczeniem ilości wystąpień.

Mam nadzieję, że w miarę jasno wyjaśniłem problem.
Liczę na jakąś podpowiedz. Pozdrawiam i nie krzyczcie za miejsce postu, bo podobny temat trochęwinksmiley.jpg
phpion
COUNT(*) - do zliczenia wystąpień
WHERE + funkcje operujące na datach - do wybrania interesującego przedziału czasowego
GROUP BY - do zgrupowania danych względem pola (tutaj: id)
ORDER BY - do posortowania według zliczonych wystąpień
LIMIT - do ograniczenia wyników (tutaj: 5)

W razie problemów pisz podając swoje aktualne rozwiązanie.
thek
Algorytm:
1. Wybierz wszystkie rekordy od daty A do daty B
2. Pogrupuj je po wybranej kolumnie
3. Zsumuj pogrupowane wiersze
4. Posortuj według sumy malejąco
5. Wybierz tyle ile chcesz.
Balor
Dzięki za pomoc, oto co mi wyszło
  1. SELECT count(*), id, typ, DATA FROM `punkty`
  2. WHERE (DATA >= date_sub( NOW(), INTERVAL 3 HOUR))
  3. GROUP BY id
  4. ORDER BY count(id) ASC LIMIT 3

no i chyba działa:D
Pozdrawiam
thek
Prawie dobrze... Tylko order jest nie w tą stronę winksmiley.jpg
Poza tym sugestia na przyszłość... Nie nazywaj kolumn słowami zastrzeżonymi dla mysql (data) bo prosisz się o kłopoty sam. Jeśli coś liczysz, sumujesz i jest to kolumna wynikowa w liście SELECT to warto temu nadać alias. Prościej potem przez nazwę się odwołać, a i w order by wygodniej się aliasem posłużyć. Z innych rzeczy to zamiast pchać liczenie czasu do bazy, można już to po stronie PHP zrobić.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.