Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> liczenie rekordow
yalus
post
Post #1





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 8.07.2005
Skąd: EU

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


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 ?
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




przywitaj sie z manualem a nastepnie poczytaj o group by oraz count
(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
yalus
post
Post #3





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 8.07.2005
Skąd: EU

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


chyba nie wymysle rozwiazania (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

pomozesz?
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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

Na moje oko to za bardzo sie nie przylozyles
Go to the top of the page
+Quote Post
yalus
post
Post #5





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 8.07.2005
Skąd: EU

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


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'
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




daj takiemu gotowe rozwiązanie to i to schrzani... (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

zobacz co jest w select: stan, count(*)
ta druga wartosc count(*) zawiera ile razy wystepuje dany stan
Go to the top of the page
+Quote Post
yalus
post
Post #7





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 8.07.2005
Skąd: EU

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


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
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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 (IMG:http://forum.php.pl/style_emoticons/default/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
Go to the top of the page
+Quote Post
yalus
post
Post #9





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 8.07.2005
Skąd: EU

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


ale luja, dziala
dzieki za pomoc

btw nie obraze sie za twoj komentarz (IMG:http://forum.php.pl/style_emoticons/default/cool.gif)

jeszcze raz dzieki za wytrwalosc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


ps. nie widzialem tej drugiej kolumny

Ten post edytował yalus 17.11.2006, 16:46:47
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 22:57