Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> COUNT na różne wartości pola
JohnySpot
post 3.03.2007, 10:23:27
Post #1





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 9.09.2003
Skąd: Włocławek

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


Tabela wygląda tak:

| Tyt | nowe |
| a | 0 |
| a | 1 |
| a | 0 |
| b | 1 |
| b | 0 |
| c | 1 |

Czy da się w jednym zapytaniu dostać ile jest "a" z zerem, ile z jedynką itd... dla każdej wartości z pola Tyt ? czy trzeba by było stosować unie ?

Wiem, że to jest niepoprawne ale coś w style

  1. SELECT DISTINCT COUNT(nowe = 1) AS nowe_1, COUNT(nowe = 0) AS nowe_0, tyt FROM jakas_tabela;


Ten post edytował JohnySpot 3.03.2007, 10:24:49


--------------------
Go to the top of the page
+Quote Post
SongoQ
post 3.03.2007, 11:53:25
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Mozesz tak:

  1. SELECT COUNT(*) AS ilosc, nowe FROM tabela GROUP BY nowe


--------------------
Go to the top of the page
+Quote Post
JohnySpot
post 3.03.2007, 15:10:15
Post #3





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 9.09.2003
Skąd: Włocławek

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


Tylko właśnie, to tak średnio pasuje, bo mi jest potrzebna w jednym zapytaniu ilość "a" nowe = 0 i nowe = 1 nie w dwóch kolejnych. :/


--------------------
Go to the top of the page
+Quote Post
SongoQ
post 4.03.2007, 00:19:31
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Dorzuc sobie pole Tyt. To wszystko bedzie w 1 zapytania a wyniki bedziesz mial w wielu rekordach


--------------------
Go to the top of the page
+Quote Post
JohnySpot
post 4.03.2007, 21:00:11
Post #5





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 9.09.2003
Skąd: Włocławek

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


Źle się wyraziłem. Właśnie w dwóch kolejnych rekordach będę miał a ja tych informacji potrzebuję w jednym :/ Chyba unia się kłania sad.gif


--------------------
Go to the top of the page
+Quote Post
SongoQ
post 4.03.2007, 21:58:33
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


No to wtedy tak ale wydaje mi sie ze kosztowo takie zapytanie bedzie gorsze. Nie sprawdzalem ale tak mi sie wydaje.


--------------------
Go to the top of the page
+Quote Post
JohnySpot
post 5.03.2007, 08:46:44
Post #7





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 9.09.2003
Skąd: Włocławek

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


Ja już walczę i nawet unii nie umiem zyskać :/
Pole 'nowa' ma mówić o tym, czy rzecz jest nowa czy używana i chciałbym wiedzieć ile jest rzeczy o danej nazwie używanych a ile nowych. I podawać dane w formie.

a nowych[10] używanych[100]
b nowych[2] używanych[10]
c nowych[5] używanych[18]

Jeszcze jakieś pomysły ? Bo ja się już poddaję.


--------------------
Go to the top of the page
+Quote Post
prond
post 5.03.2007, 09:13:41
Post #8





Grupa: Zarejestrowani
Postów: 254
Pomógł: 10
Dołączył: 8.11.2006
Skąd: Warszawa

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


Może chodzi Ci o coś takiego :
  1. SELECT
  2. Tyt,
  3. SUM(CASE WHEN nowe = 1 THEN 1 ELSE 0 END) AS count_nowe,
  4. SUM(CASE WHEN nowe = 0 THEN 1 ELSE 0 END) AS count_stare
  5. FROM tab GROU BY Tyt;


Ten post edytował prond 5.03.2007, 09:16:26


--------------------
--------------------------------------------------------------------------------
weblog.axent.pl
--------------------------------------------------------------------------------
Go to the top of the page
+Quote Post
spryciula
post 5.03.2007, 09:22:38
Post #9





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 9.12.2006

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


  1. SELECT tyt, count(nowe) AS stare, xxx.nowe1 AS nowe
  2. FROM `test` INNER JOIN (SELECT test1.tyt AS tyt1, count(test1.nowe) AS nowe1
  3. FROM `test` test1
  4. WHERE nowe = 1
  5. GROUP BY tyt)xxx
  6. ON xxx.tyt1 = `test`.tyt
  7. WHERE nowe = 0
  8. GROUP BY tyt



chyba chodziło ci o coś takiego smile.gif

Ten post edytował spryciula 5.03.2007, 09:29:36
Go to the top of the page
+Quote Post
JohnySpot
post 5.03.2007, 19:52:18
Post #10





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 9.09.2003
Skąd: Włocławek

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


@perond

Wielkie dzięki - dokładnie o coś takiego mi chodziło.


--------------------
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: 13.06.2025 - 09:40