Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: liczenie rekordow
Forum PHP.pl > Forum > Bazy danych > MySQL
yalus
witam

czy jest jakis sposob aby policzyc liczbe rekordow zawierajacych w jednym polu te same wpisy tzn.


id | stan |
_ |_____|_
1 | a |_
_ |_____|_
2 | b |_
_ |_____|_
3 | b |_
_ |_____|_
4 | a |_
_ |_____|_
5 | c |_
_ |_____|_
6 | c |_
_ |_____|_



chcialbym otrzymac wynik konstruujac w miare najprostrze zapytanie

czy chcac policzyc wszystkie rekordy o stanie a musze zrobic cos takiego:
SQL = Select * from tabela where stan='a'

i tak dla pozostalych stanow ?
nospor
przywitaj sie z manualem a nastepnie poczytaj o group by oraz count
smile.gif
yalus
chyba nie wymysle rozwiazania sad.gif

pomozesz?
nospor
  1. SELECT stan, count(*) FROM tabela GROUP BY stan

Na moje oko to za bardzo sie nie przylozyles
yalus
nie jestem pewien czy dokladnie wytlumaczylem o co mi chodzi

to co ty napisales jest jaknajbardziej poprawne ale zwroci wynik taki
a
b
c


a mi chodzi aby wynik byl takiej postaci


rekordow o stanie
a jest 2
b jest 2
c jest 2


czy da sie cos takiego zrobic w jednym zapytaniu czy musze dla kazdego stanu pisac osobne zapytanie
tzn
SQL = Select * from tabela where stan='a'
SQL = Select * from tabela where stan='b'
SQL = Select * from tabela where stan='c'
nospor
daj takiemu gotowe rozwiązanie to i to schrzani... tongue.gif

zobacz co jest w select: stan, count(*)
ta druga wartosc count(*) zawiera ile razy wystepuje dany stan
yalus
nie jaze


jak zrobie tak jak mowisz i przejade po tablicy wynikow to otrzymuje cos takiego: ['a','b','c']
czyli to co ty piszesz to wg mnie dzial tak samo jak SQL = "Select distinct stan from tabela"
tzn dostaje tablice z nie powtarzajacymi sie wpisami

a ja daze aby otrzymac cos takiego ['a=2','b=2','c=2']

czyli tablice w ktorej beda liczby wszystkich wystepujacych stanow
nospor
Cytat
jak zrobie tak jak mowisz i przejade po tablicy wynikow to otrzymuje cos takiego: ['a','b','c']

jedno ci musze przyznac: jestes bardzo odporny.....
...na wiedze winksmiley.jpg

jesli nie rozumiesz, to doczytaj w manualu.

skoro w select wystepuja dwie rzeczy do wyswietlenie, to znaczy ze te dwie rzeczy są. wstaw sobie to do PMA lub innego klienta bazodanowego a zobaczysz.

z count zrob alias, to bedziesz to widzial pod konkretna nazwa:
  1. SELECT stan, count(*) ilosc FROM tabela GROUP BY stan


Teraz twoja ilosc bedzie zapisana pod nazwą ilosc

to zapytania zwraca po dwie kolumny w rekordzie, a nie po jednej tak jak ty chyba myslisz
yalus
ale luja, dziala
dzieki za pomoc

btw nie obraze sie za twoj komentarz cool.gif

jeszcze raz dzieki za wytrwalosc smile.gif


ps. nie widzialem tej drugiej kolumny
nospor
Cytat
btw nie obraze sie za twoj komentarz
nie bez powody dalem przy nim mrugniecie oka, bys nawet przez chwile nie pomyslal ze byl to obraźliwy tekst 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.