Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wybieranie wartosci nalezacychDoJakichsPrzedzialow
Forum PHP.pl > Forum > Bazy danych > MySQL
lisu
Jest tabela produktow (18k rekordow), 2 kluczowe pola to:
id_towaru int (klucz)
cenazakupu int

Wyciagam zapytaniem max(cenazakupu), min(cenazakupu) i avg(cenazakupu) te trzy wartosci do php. Na ich podstawie generuje przedzialy cenowe, np: 100-199.99zl; 200-299.99zl; 300 - 400zl; Teraz chce wyciagnac z bazy ile produktow znajduje sie w danym przedziale cenowym. Wymyslilem np:

  1. SELECT count( * ) , cenazakupu >0 AS l0 ,cenazakupu >100 AS l1, cenazakupu >200 AS l2, cenazakupu >300 AS l3, cenazakupu >400 AS l4
  2. FROM towary
  3. GROUP BY l0,l1, l2,l3,l4


Tutaj da sie wyliczyc to co chce, ale ostatni i pierwszy rekord nie jest mi potrzebny (pierwszy i tak sie sam wygeneruje zawsze bo l? bedzie 0). Nawet jak dodam
  1. (cenazakupu > 100 AND cenazakupu <200) AS l0
itd to powstaje ten niepotrzebny rekord. Czy jest jakas elegancka metoda ?
dtb
  1. instrukcja WHERE nazwa_pola BETWEEN dolny_przedział AND gorny_przedział
lisu
Cytat(dtb @ 2006-03-02 18:27:04)
  1. instrukcja WHERE nazwa_pola BETWEEN dolny_przedział AND gorny_przedział

chce wyciagnac ilosci do wszystkich przedzialow jednym zapytaniem.
chyba
  1. ... WHERE l0 !=0 AND l1 !=0 itd...
rozwiaze moj problem smile.gif
spenalzo
  1. SELECT
  2. SUM(IF(visits>0 AND visits<100,1,0)) AS zakr_0_100,
  3. SUM(IF(visits>100 AND visits<200,1,0)) AS zakr_100_200,
  4. SUM(IF(visits>200 AND visits<300,1,0)) AS zakr_200_300,
  5. COUNT(id) AS ilosc
  6. FROM dupa3

Coś takiego może?
lisu
Cytat(spenalzo @ 2006-03-02 20:17:44)
  1. SELECT
  2. SUM(IF(visits>0 AND visits<100,1,0)) AS zakr_0_100,
  3. SUM(IF(visits>100 AND visits<200,1,0)) AS zakr_100_200,
  4. SUM(IF(visits>200 AND visits<300,1,0)) AS zakr_200_300,
  5. COUNT(id) AS ilosc
  6. FROM dupa3

Coś takiego może?

Super biggrin.gif dzieki
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.