Vyzaduje group by order by?

Ondrej Koala Vacha koala na fi.muni.cz
Středa Srpen 9 11:53:13 CEST 2000


On Wed, 9 Aug 2000, Honza Pazdziora wrote:

> > muze se stat, ze 
> > 
> > select xx,sum(ks) group by xx order by yy
> 		^^^^^
> 		predpokladam, ze tady je jeste nejake from table
> 

Samozrejme, moje opomenuti :(


> Oracle Vam na tohle rekne
> 
> 	ORA-00979: not a GROUP BY expression
> 
> a ukaze na to yy. Proste ten sloupec yy tam neexistuje, existuje jenom
> to, co pustite ven pres group by, tedy sloupce pres ktere groupujete
> nebo agregace.



> 
> Ale Vy prece muzete mit zaznamy
> 
> 	xx	yy	ks
> 	123	8	1
> 	123	4	2
> 	098	1	1
> 	098	8	2
> 
> Vysledek je pak
> 
> 	xx	sum(ks)
> 	123	3
> 	098	3
> 
> A jak byste tady chtel tridit podle yy? Ve vysledku mate pouze sloupce
> xx a sum(ks) a ty yy jdou napric nimi.
> 

No chtel... Nechtel. Ale moho by to taky fungovat tak, ze seznam se
najprve setridi podle order by



	 xx      yy      ks
 	098     1       1
	123     4       2
        123     8       1
        098     8       2
>               

a teprve _pak_ group-ne. Pak bych dostal

	xx       sum(ks)
	098	  1
	123	  3
	098	  2



V zasade mi jde o to, zda je zaruceno, ze vysledek bude takovy, jako by se
napred tridilo a group-ovalo podle goup by a teprva pak podle order by
anebo opacne.

> V MySQL (3.23.13) Vam to projde a projde to proto, ze v MySQL Vam
> projde

Ano, i kdyz v komplikovanejsich pripadech to taky zahlasi chybu. 
Ale chapu, ze toto je duvod, proc to u mysql projde.



s diky za vysvetleni

---
Ondrej Koala Vacha



Další informace o konferenci Databases