2 messages in com.mysql.lists.mysql-esRE: Duda
FromSent OnAttachments
Yosvany Hurtado Martínez27 Apr 2005 05:14 
Xavier Vidal29 Apr 2005 10:38 
Subject:RE: Duda
From:Xavier Vidal (xavi@aladus.com)
Date:04/29/2005 10:38:04 AM
List:com.mysql.lists.mysql-es

Hola,

Si no te importa usar variables y la línea de comando, puedes probar algo como esto: SELECT COUNT(*) FROM track; SELECT @a := FOUND_ROWS(); SELECT COUNT(*) AS cantidad, ROUND(COUNT(*) * 100/@a, 2) AS porciento, country FROM track GROUP BY country, country;

Saludos,

-----Original Message----- From: Yosvany Hurtado Martínez [mailto:yosv@terra.es] Sent: miércoles, 27 de abril de 2005 14:15 To: mysq@lists.mysql.com Subject: Duda

Hola Gente, tengo una duda con una consulta en mysql. Tengo una tabla con varios campos, entre otros, "country" y me gustaría sacar en una sola consulta, una lista de los paises con la cantidad de veces que aparecen en la tabla y el promedio del total que representan sus entradas: La salida, suponiendo que tengo 100 entradas en la tabla, debería ser algo como esto:

Pais cantidad Porciento

España 80 80 Portugal 10 10 Grecia 3 3 Francia 7 7

La consulta en cuestion a una base de datos mysql 4.1 .x es:

SELECT country, cantidad, ROUND(cantidad*100/total,2) as porciento from ( SELECT country, COUNT( country ) AS cantidad FROM track GROUP BY country ) as x, (SELECT COUNT(Id) as total from track) as x1 GROUP by country

y funciona muy bien (es posible que se pueda hacer mejor, pero con esta me vale)

El caso es que el servidor en internet tiene mysql 4.0 y me da un error que asumo de debe a que no soporta estas subconsultas anidadas y agruopadas. Hay alguna forma de plantear una consulta parecida para esa version de mysql. En ultimo caso hago por programa los calculos (que por otra parte es sencillo) pero preferiría resolverlo con mysql.

Alguna solución?

Un saludo y gracias a todos. Yosvany