Article View: es.comp.os.linux.programacion
Article #11266Re: Dos dudas sobre SQL.
From: Xavier Montero
Date: Sun, 02 Dec 2001 23:11
Date: Sun, 02 Dec 2001 23:11
80 lines
3305 bytes
3305 bytes
Lo m�s cercano que he conseguido es que muestre la tabla entera con las notas y la media al lado, con esta sentencia: ------- BEGIN OF SQL SENTENCE ------------- select nombre, b.nota as n, avg(a.nota) as media from opositores, examen1 as a,examen1 as b where opositores.dni = b.dni group by b.dni; ------- END OF SQL SENTENCE ------------- Resultado: +--------+-------+-----------+ | nombre | n | media | +--------+-------+-----------+ | Xavi | 1.200 | 6.9600000 | | Maite | 9.110 | 6.9600000 | | Laura | 9.320 | 6.9600000 | | Marc | 8.210 | 6.9600000 | +--------+-------+-----------+ 4 rows in set (0.00 sec) mysql> Pero cuando a�ado en el where "n > media" me dice que no encuentra las columnas "n" y "media" �? No s� si tendr� una versi�n de mySQL un poco vieja y se hace la pissha un l�o con los aliases de los nombres de las columnas. Supongo que el truco se ve, no? Instancio para cada l�nea de la tabla, la misma tabla entera y le pego un average l�nea a l�nea, por ejemplo, sin el group by (y sin el avg() l�gicamente) queda as�: select nombre, b.nota as n, a.nota as media from opositores, examen1 as a,examen1 as b where opositores.dni = b.dni order by b.dni; +--------+-------+-------+ | nombre | n | media | +--------+-------+-------+ | Xavi | 1.200 | 1.200 | | Xavi | 1.200 | 9.110 | | Xavi | 1.200 | 9.320 | | Xavi | 1.200 | 8.210 | | Maite | 9.110 | 1.200 | | Maite | 9.110 | 9.110 | | Maite | 9.110 | 9.320 | | Maite | 9.110 | 8.210 | | Laura | 9.320 | 1.200 | | Laura | 9.320 | 9.110 | | Laura | 9.320 | 9.320 | | Laura | 9.320 | 8.210 | | Marc | 8.210 | 1.200 | | Marc | 8.210 | 9.110 | | Marc | 8.210 | 9.320 | | Marc | 8.210 | 8.210 | +--------+-------+-------+ Es decir, cuando agrupo por b.dni, le pego la media sobre el campo "media" de las 4 l�neas que me salen en este �ltimo resultado para Xavi, luego lo hago para Maite (y ser� el mismo resultado) y as� sucesivamente. Para 6000 registros como tiene, puede ir un poco lento, pero funcionar, funcionar�. Lo que puedes probar es si la comparaci�n "n > media" te funciona y posteas el �xito, ok? Saludos. Xavi.
Technical Details
Message-ID:
<3C0AB50F.C7DC52BB@dsitelecom.com>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!newsfeeds.belnet.be!news.belnet.be!opentransit.net!newsfeed.comtenidos.com!newsfeeder.wanadoo.es!news.antakira.com!not-for-mailReferences:
<87g06u69nh.fsf@meltdown.ion>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,b998237532da112b X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2001-12-02 16:06:04 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!newsfeeds.belnet.be!news.belnet.be!opentransit.net!newsfeed.comtenidos.com!newsfeeder.wanadoo.es!news.antakira.com!not-for-mail From: Xavier Montero <xmontero@dsitelecom.com> Newsgroups: es.comp.os.linux.programacion Subject: Re: Dos dudas sobre SQL. Date: Mon, 03 Dec 2001 00:11:11 +0100 Organization: Digital Sound Items Lines: 80 Message-ID: <3C0AB50F.C7DC52BB@dsitelecom.com> References: <87g06u69nh.fsf@meltdown.ion> NNTP-Posting-Host: 212.25.147.135 Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: news.wanadoo.es 1007337342 27845 212.25.147.135 (2 Dec 2001 23:55:42 GMT) X-Complaints-To: usenet@wanadoo.es NNTP-Posting-Date: Sun, 2 Dec 2001 23:55:42 +0000 (UTC) X-Mailer: Mozilla 4.77 [en] (Windows NT 5.0; U) X-Accept-Language: en