Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sumowanie rekordow jednej kolumny po zawartosci
Forum PHP.pl > Forum > Bazy danych > MySQL
wasik89
Witam serdecznie. Pytanie moze sie wydac banalne jednak siedze juz dlugi czas nad tym i
rece opadaja smile.gif

zakladajmy ze mam jedna kolumne w tabeli o nazwie figury.
rekordy w tej kolumnie to np. kwadrat, kolo, trojkat, kolo, kwadrat

chcialbym zapytaniem sql doprowadzic do tego by wyswietlilo mi tak :
nazwa figury - ilosc wystapienia smile.gif czyli
kwadrat | 2
kolo | 2
trojkat | 1

Z gory serdecznie dziekuje za naprowadzenie... bawilem sie funkcja SUM ale wciaz nie wiem jak to zrobic dla tylko jedej kolumny.
Pozdrawiam i please help me ;p

PS. chcialbym zaznaczyc ze z gory nie moge przewidziec jaki bedzie kolejny rekord z nazwa figury... moze byc to dalej np elipsoida obrotowa ;]
wiec na sztywno w zapytaniu nie moge pytac ze sortuj po kwadratach itp ...
radmistrz2
Ja bym to widział w kilku zapytaniach. Najpierw wyciągasz unikatowe wartości (UNIQUE), później SELECT SUM(cyfra) FROM tabela WHERE figura = $figura[$i] czy jakoś tak. Pokombinuj z tym.
wasik89
Dzieki smile.gif
Wlasciwie to pospieszylem sie z tym postem bo zaraz potem rozwiazanie samo przyszlo. Zostawiam kodzik dla potomnosci smile.gif

  1. SELECT DISTINCT tabela.figura, COUNT( figura ) AS ilosc FROM tabela GROUP BY figura ORDER BY figura DESC


Banalne w swojej banalnosci smile.gif
maly_swd
a nie powinno byc tak?
  1. SELECT figura, COUNT( figura ) AS ilosc FROM tabela GROUP BY figura ORDER BY figura DESC

W Twoim zapytaniu, count zawsze zwroci 1;)
wasik89
No wlasnie nie wiem ale wszystko wskazuje na to ze jest ok w swejnormalnosci smile.gif
Kilka dni juz sie skrypcik testuje i nie natrafilem na bledy.
Mchl
DISTINCT filtruje już po zagregowaniu wyników. Inna sprawa, że nie jest tutaj do nieczego potrzebny.
maly_swd
Mchl-> fakt:)
jajcarzd1
Cytat(wasik89 @ 31.05.2010, 14:12:50 ) *
Dzieki smile.gif
Wlasciwie to pospieszylem sie z tym postem bo zaraz potem rozwiazanie samo przyszlo. Zostawiam kodzik dla potomnosci smile.gif

  1. SELECT DISTINCT tabela.figura, COUNT( figura ) AS ilosc FROM tabela GROUP BY figura ORDER BY figura DESC


Banalne w swojej banalnosci smile.gif



Hmm a nie powinno być tak ?

  1. SELECT figura, SUM( figura ) AS ilosc FROM tabela GROUP BY figura ORDER BY figura DESC
Mchl
Nie powinno. Ile to jest 'trójkąt'+'trójkąt'+'trójkąt' ?
jajcarzd1
Cytat(Mchl @ 7.06.2010, 08:02:47 ) *
Nie powinno. Ile to jest 'trójkąt'+'trójkąt'+'trójkąt' ?


Heh no fakt pospieszyłem się bo to nie jest przecież pole liczbowe smile.gif
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.