![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Dostałem od znajomego zlecenie rozbudowy pewnego skryptu sklepowego o funkcje wyświetlania przedziałów cenowych dostępnych produktów w danej kategorii. Coś jak np w Ceneo w lewym menu:
Jak wygenerować takie przedziały? Czy to po prostu dzieli wszystkie dostepne ceny na 4 i wyświwetla z danego przedziału największa i najmniejszą? Czyli ilości powinny być porównywalne w każdym przedziale, a np na tej stronie widze, że są duze różnice w poszczególnych przedziałach cenowych, czyli produkty nie są tak po prostu dzielone. Macie może pomysł, jak rozwiązać ta sprawę? Będę wdzięczny za wszelkie wypowiedzi. Ten post edytował kukix 27.01.2011, 02:01:15 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 273 Pomógł: 21 Dołączył: 28.11.2010 Ostrzeżenie: (10%) ![]() ![]() |
Hmm, a samo " <, > " w zapytaniu nie wystarczy? Oczywiście w klauzuli WHERE.
Przykład:
Ten post edytował emajl22 27.01.2011, 02:01:59 -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Na początek:
Kod # Podsumowanie kategorii Jak widać nie jest to żadna skala liniowa. Raczej wątpię by w innych kategoriach proporcje wyglądały podobnie.# minimalna - maksymalna cena (ilość stron) - ilość produków 0,80 - 28824,34 (523) - 10460 # Kolejne filtry cenowe # minimalna - maksymalna cena (ilość stron) - stosunek ilości stron do ogółu 0,80 - 1008,00 (302) - 58% 1014,80 - 2040,00 (137) - 26% 2041,60 - 3289,00 (048) - 9% 3290,00 - 5187,00 (024) - 5% 5218,67 - 28824,34 (014) - 3% Zapewne przy generowaniu przedziałów pod uwagę brane będzie 80-90% produktów (skrajne ceny zostaną odrzucone, by pojedyncze produkty nie psuły wyników). Dochodzi druga w nocy i nie chce mi się sprawdzać ale być może przedziały są określane na podstawie jakiejś skali logarytmicznej. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Zagadnienie statystyczne. Dwie skrajne wartości mamy, liczbę przedziałów najlepiej określić jako stałą, co do rozpiętości przedziałów sugeruję korzystać z tego:
http://pl.wikipedia.org/wiki/Rozk%C5%82ad_normalny Możesz być nawet lepszy od konkurencji i machnąć wykres. Poczytaj o przedziałach ufności, poziomie istotności, funkcjach gęstości itp. Dzisiaj masz dużo gotowych narzędzi (np. w excelu). |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Niestety nie mam wykształcenia matematycznego. Skończyłem administracje :/ Zastanawiam się jakby można było to po chłopsku ogarnąć.
Może zrobić tak. Podzielić wszystkie dostępne ceny na 5 przedziałów. od 0 do maksymalnej liczby dajmy na to 7688 zł. Jeden przedział wychodzi wtedy 1537zł. Pierwszy przedział można by zrobić mniejszy, ale trzeba to zrobić jakoś uniwersalnie :/ poniżej 200.00 zł (127) od 200.00 do 400.00 zł (90) od 400.00 do 1400.00 zł (91) od 1400.00 do 2600.00 zł (83) powyżej 2600.00 zł (82) |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 575 Pomógł: 299 Dołączył: 26.03.2009 Ostrzeżenie: (20%) ![]() ![]() |
Ja bym to zrobił tak
Wynik Kod poniżej 437 zł (41) od 438 do 874 zł (18) od 875 do 1311 zł (6) powyżej 1312 zł (3) Tak na szybko zrobiłem Ten post edytował Wicepsik 28.01.2011, 15:07:45 -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
No i co, poniżej 437 masz aż 41, czyli najliczniejsza grupa nie jest podzielona...
Po chłopsku mówisz? Jeśli chcesz wprowadzić stałą liczbę przedziałów to ja bym Ci radził też dać stałą liczbę elementów na przedział, czyli jeśli masz np. 100 telewizorów to będzie wychodziło po 20 na przedział i wyglądało to będzie mniej więcej tak: 1. < 400 zł - 20 2. 400-450 zł - 20 3. 450-470 - 20 4. 470-560 - 20 5. 560 < - 20 To będzie najprostsze do zrobienia i przejrzyste dla użytkowników. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.07.2025 - 02:15 |