ďťż
 
Postgresql - problem z zapyatniem zliczajacym - pomocy :( ďťż
 
Postgresql - problem z zapyatniem zliczajacym - pomocy :(
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Postgresql - problem z zapyatniem zliczajacym - pomocy :(



koralgol1955@o2.pl - 06-01-2007 00:02
Postgresql - problem z zapyatniem zliczajacym - pomocy :(
  Witam!
rece mi opadaja albo jestem juz zmeczony albo ja juz nie wiem...
mam dwie tabele np.
tabela1 ( tabela1_pole char(100) )
tabela2 ( tabela2_pole char(100) )

zawartosc:
tabela1
A
A
A
B
B

tabela2
A
B
C

chce dac takie zapyatnie ktore po zlaczeniu, zliczeniu tabel wypisalo by taki
wynik
A - 3 razy
B - 2 razy
C - 0 razy ( I TU MAM PROBLEM!!!!!!!)

Jak to osiagnac??
Jzu probowalem rozne rodzaja zlaczen left join itd i nic nie wychodzi ciagle
pokazuje mi zliczenia tych wartosci tabeli 2 ktore wystepuja w tabeli 1 raz i
wiecej ale nie pokazuje mi zero tych wartosci ktore nie wystepuja
za pomoc serdecznie iThank you14:01:28

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl





=?ISO-8859-2?Q?Micha=B3?= Kuratczyk - 06-01-2007 00:02

  koralgol1955@o2.pl wrote:
> zawartosc:
> tabela1
> A
> A
> A
> B
> B
>
> tabela2
> A
> B
> C
>
> chce dac takie zapyatnie ktore po zlaczeniu, zliczeniu tabel wypisalo by
> taki wynik
> A - 3 razy
> B - 2 razy
> C - 0 razy ( I TU MAM PROBLEM!!!!!!!)

Na przykład tak:

select tabela2_pole as wartosc,
(select count(*) from tabela1 where tabela1_pole = tabela2_pole) as ile
from tabela2;

--
Michał Kuratczyk




Marcin - 06-01-2007 00:02

 
Użytkownik "Michał Kuratczyk" <kura@lj.pl> napisał w wiadomości
news:enlnab$jfi$1@mx1.internetia.pl...
> koralgol1955@o2.pl wrote:
>> zawartosc:
>> tabela1
>> A
>> A
>> A
>> B
>> B
>>
>> tabela2
>> A
>> B
>> C
>>
>> chce dac takie zapyatnie ktore po zlaczeniu, zliczeniu tabel wypisalo by
>> taki wynik
>> A - 3 razy
>> B - 2 razy
>> C - 0 razy ( I TU MAM PROBLEM!!!!!!!)
>
> Na przykład tak:
>
> select tabela2_pole as wartosc,
> (select count(*) from tabela1 where tabela1_pole = tabela2_pole) as ile
> from tabela2;
>

ja proponuję

create table tabela1 (pole char(1))
create table tabela2 (pole char(1))
insert into tabela2 values('A')
insert into tabela2 values('B')
insert into tabela2 values('C')

insert into tabela1 values('A')
insert into tabela1 values('A')
insert into tabela1 values('A')
insert into tabela1 values('B')
insert into tabela1 values('B')

select tabela2.pole, count(tabela1.pole) from tabela2 left outer join
tabela1 on tabela2.pole = tabela1.pole group by tabela2.pole

w mssql śmiga tak, jak chcesz...

ale

select tabela2.pole as wartosc, (select count(*) from tabela1 where
tabela1.pole = tabela2.pole) as ile from tabela2

też śmiga!

O. Zbadałem Execution plan i wychodzi, że 1 rozwiązanie bardziej optymalne
od drugiego, o kilka procent:
Query 1: Query cost (relative to the batch) 53,33%
Query 2: Query cost (relative to the batch) 46,67%

A więc to pierwsze rozwiąznie bardziej opłacalne!

Serdeczne pozdrowienia
Marcin Pawelec




=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 06-01-2007 00:02

  koralgol1955@o2.pl wrote:
> Witam!
> rece mi opadaja albo jestem juz zmeczony albo ja juz nie wiem...
> mam dwie tabele np.
> tabela1 ( tabela1_pole char(100) )
> tabela2 ( tabela2_pole char(100) )
>
> zawartosc:
> tabela1
> A
> A
> A
> B
> B
>
> tabela2
> A
> B
> C
>
> chce dac takie zapyatnie ktore po zlaczeniu, zliczeniu tabel wypisalo by taki
> wynik
> A - 3 razy
> B - 2 razy
> C - 0 razy ( I TU MAM PROBLEM!!!!!!!)
>
> Jak to osiagnac??
> Jzu probowalem rozne rodzaja zlaczen left join itd i nic nie wychodzi ciagle
> pokazuje mi zliczenia tych wartosci tabeli 2 ktore wystepuja w tabeli 1 raz i
> wiecej ale nie pokazuje mi zero tych wartosci ktore nie wystepuja

Robisz jakiś błąd, ale nie wskażemy Ci go, bo nie pokazałeś zapytania, które
próbowałeś.

--
P.M.





koralgol1955@o2.pl - 06-01-2007 00:02

  >
> Użytkownik "Michał Kuratczyk" <kura@lj.pl> napisał w wiadomości
> news:enlnab$jfi$1@mx1.internetia.pl...
> > koralgol1955@o2.pl wrote:
> >> zawartosc:
> >> tabela1
> >> A
> >> A
> >> A
> >> B
> >> B
> >>
> >> tabela2
> >> A
> >> B
> >> C
> >>
> >> chce dac takie zapyatnie ktore po zlaczeniu, zliczeniu *tabel wypisalo by
> >> taki wynik
> >> A - 3 razy
> >> B - 2 razy
> >> C - 0 razy ( I TU MAM PROBLEM!!!!!!!)
> >
> > Na przykład tak:
> >
> > select tabela2_pole as wartosc,
> > (select count(*) from tabela1 where tabela1_pole = tabela2_pole) as ile
> > from tabela2;
> >
>
> ja proponuję
>
> create table tabela1 (pole char(1))
> create table tabela2 (pole char(1))
> insert into tabela2 values('A')
> insert into tabela2 values('B')
> insert into tabela2 values('C')
>
> insert into tabela1 values('A')
> insert into tabela1 values('A')
> insert into tabela1 values('A')
> insert into tabela1 values('B')
> insert into tabela1 values('B')
>
> select tabela2.pole, count(tabela1.pole) from tabela2 left outer join
> tabela1 on tabela2.pole = tabela1.pole group by tabela2.pole
>
> w mssql śmiga tak, jak chcesz...
>
> ale
>
> select tabela2.pole as wartosc, (select count(*) from tabela1 where
> tabela1.pole = tabela2.pole) as ile from tabela2
>
> też śmiga!
>
> niestety nie Thank you15:48:33

niestety nie dziala w postgresql

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl




=?ISO-8859-2?Q?Micha=B3?= Kuratczyk - 06-01-2007 00:02

  koralgol1955@o2.pl wrote:
> niestety nie dziala w postgresql
Działa, działa. Jedno i drugie. Bądź bardziej wylewny - jak masz
z czymś problem, to opisz jaki, a nie tylko "nie działa".

--
Michał Kuratczyk
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= mysql i mysql-front, problem String line; if (line=="cos"){...}....problem [oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?= [PostgreSQL] - jak =?ISO-8859-2?Q?zabezpieczy=E6_interesy_tw?==?ISO-8859-2?Q?=F3rcy_systemu_=3F=3F=3F?= postgresql - int/int Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ] [PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ? [MySQL] Problem z zapisem danych w bazie danych Problem z mysql - can't connect to MySQL/nietypowo...
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • own-team.pev.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com