Avatar billede spisefisken Nybegynder
26. januar 2006 - 14:48 Der er 7 kommentarer

Group by giver forskelligt resultat

Jeg kører denne select

select sum(amount) from (
select
a.country,
b.account,
b.name,
c.county,
sum(b.amount) amount
from
table_a a,
table_b b,
table_c c
where
a.b_id = b.b_id and
b_c_id = c.c_id
group by
a.country,
b.account,
b.name,
c.county)

og får det resultat jeg skal bruge. Jeg skal dog bruge noget fra table_c, som er i min select statement. Når jeg tilføjer dette som dette, får jeg et andet resultat.

select sum(amount) from (
select
a.country,
b.account,
b.name,
b.county,
c.supplier,
c.buyer,
sum(b.amount) amount
from
table_a a,
table_b b,
table_c c
where
a.b_id = b.b_id and
b_c_id = c.c_id
group by
a.country,
b.account,
b.name,
b.county,
c.supplier,
c.buyer)

Jeg kører på en 10.2 db og har puttet load_balance på.
Avatar billede Slettet bruger
26. januar 2006 - 16:17 #1
Har du samme antal b.b_id som c.c_id, hvor de vel at mærke er ens ?
Avatar billede Slettet bruger
26. januar 2006 - 16:53 #2
vrøvl - undskyld, fik vist ikke læst det rigtigt igennem første gang :(

hvis du har rækker med null-værdier i c.buyer kunne det måske give en forskel
Avatar billede spisefisken Nybegynder
26. januar 2006 - 21:26 #3
Undskyld jeg ikke specificerede det. Jeg har en nvl på de to kolonner fra c.
Så det giver ingen forskel for mig
Avatar billede charlie37 Nybegynder
22. februar 2006 - 17:37 #4
Du skal opdele din sql, din group by sørger for at der kun kommer én af hver værdi i hver kolonne, så din anden forespørgelse får sikkert en mindre antal svar ikke ??
Avatar billede charlie37 Nybegynder
22. februar 2006 - 17:38 #5
Ups undskyld, dit andet svar er helt sikket større, grundet de flere muligheder i din group by !!
Avatar billede charlie37 Nybegynder
22. februar 2006 - 17:39 #6
Hvad skal du bruge fra dit select statement ?
Avatar billede pgroen Nybegynder
14. marts 2006 - 12:33 #7
Halloooo ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester