![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 8.05.2005 Skąd: Gdańsk Ostrzeżenie: (10%) ![]() ![]() |
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 (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Aby to badziej zoobrazować: SELECT suma[cena] FROM grunt WHERE id = x |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 23.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
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ę(IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
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. Ten post edytował phpion 23.07.2010, 12:00:21 |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
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. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 23.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Prawie dobrze... Tylko order jest nie w tą stronę (IMG:style_emoticons/default/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ć. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 18:47 |