Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> liczenie rekordow
yalus
post 17.11.2006, 14:17:01
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 ?


--------------------
człowiek nie sznurek wszystko wytrzyma
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
nospor
post 17.11.2006, 14:38:32
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
smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
yalus
post 17.11.2006, 15:49:27
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 sad.gif

pomozesz?


--------------------
człowiek nie sznurek wszystko wytrzyma
Go to the top of the page
+Quote Post
nospor
post 17.11.2006, 16:02:10
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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
yalus
post 17.11.2006, 16:07:37
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'


--------------------
człowiek nie sznurek wszystko wytrzyma
Go to the top of the page
+Quote Post
nospor
post 17.11.2006, 16:13:12
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... tongue.gif

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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
yalus
post 17.11.2006, 16:26:14
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


--------------------
człowiek nie sznurek wszystko wytrzyma
Go to the top of the page
+Quote Post
nospor
post 17.11.2006, 16:35:28
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 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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
yalus
post 17.11.2006, 16:45:25
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 cool.gif

jeszcze raz dzieki za wytrwalosc smile.gif


ps. nie widzialem tej drugiej kolumny

Ten post edytował yalus 17.11.2006, 16:46:47


--------------------
człowiek nie sznurek wszystko wytrzyma
Go to the top of the page
+Quote Post
nospor
post 17.11.2006, 16:46:33
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 smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 11:43