Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zap sql: ilosc odslon i unikalnych odwiedzin wg dnia
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
ds26
witam,

chce wyciagnac ilosc_odslon, ilosc_unikalnych_wizyt, i date, wszystko posortowane dla kazdego dnia.
i wlasnie tutaj ugrzazlem.. dostaje :

ERROR: more than one row returned by a subquery used as an expression

to jest zapyanie:

select cast(clicked as date) as sort_date,
(select
count(*) as page_views,
(select count(distinct ip) from click_track where brand_id =3) as unique_visitors
from click_track y
where y.brand_id = 3)
from click_track x
where x.brand_id = 3
group by sort_date

jakies pomysly?
SongoQ
A nie lepiej

  1. SELECT 1_podzapytanie AS xxx, 2_podzapytanie AS ........
ds26
ok: wiec mam cos takiego:

select cast(clicked as date) as sort_date,
(select count(*) from click_track where brand_id =3) as page_views,
(select count(distinct ip) from click_track where brand_id =3) as unique_visitors
from click_track y
where y.brand_id = 3
group by cast(clicked as date)


ale nie bardzo dziala bo taki wynik dostaje:

sort_date | page_views | unique_visitors
------------+------------+-----------------
2007-02-09 | 70 | 14
2007-02-08 | 70 | 14
(2 rows)

8-go powinien byc tylko jeden page_view i unikalny..
SongoQ
Jesli grupujesz to tak CI to nie zadziala. Musisz grupe uzaleznic z podzapytaniem. Wzcesniej tego nie zauwazylem ale przeniesc do FROM i w kazdym dodaj grupowanie a nastepnie zlaczenie po tej dacie. Troche nieoptymalny sposob ale powinien dzialac.
ds26
hmmm.. nie bardzo rozumiem.. mozesz cos naszkicowac..?
SongoQ
Np cos takiego, taki maly przykladzik

  1. SELECT cast(clicked AS date) AS sort_date,
  2. FROM (SELECT count(*) AS page_views, cast(clicked AS date) AS sort_date FROM click_track WHERE brand_id =3) page_views, click_track y
  3. WHERE y.brand_id = 3 AND page_views.sort_date = click_track.sort_date
  4. GROUP BY sort_date)
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.