Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Seleccionar "el resto" y sumarlo -¿Como? -

Estas en el tema de Seleccionar "el resto" y sumarlo -¿Como? - en el foro de Mysql en Foros del Web. Tengo esta consulta: Código PHP: select country ,  count ( provider_id )as  total from provider group by country order by total DESC Limit 5  Quiero que el resultado sea este: Como se puede hacer? Esto si ...
  #1 (permalink)  
Antiguo 22/09/2005, 16:29
Avatar de ADIÓS_ADRIANA  
Fecha de Ingreso: septiembre-2005
Mensajes: 263
Antigüedad: 18 años, 7 meses
Puntos: 0
Seleccionar "el resto" y sumarlo -¿Como? -

Tengo esta consulta:

Código PHP:
select countrycount(provider_id)as total
from provider group by country order by total DESC Limit 5 



Quiero que el resultado sea este:




Como se puede hacer? Esto si sería sofisticado para mí...

Gracias de Antemano.
  #2 (permalink)  
Antiguo 23/09/2005, 02:23
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Código:
 select country, count(provider_id)as total
from provider group by country order by total DESC Limit 5 
UNION
Select 'otros' as country, count(provider_id) as total from provider where provider_id not in (select provider_id
from provider group by country order by total DESC Limit 5 )
Espero que te sirva
  #3 (permalink)  
Antiguo 23/09/2005, 08:25
Avatar de ADIÓS_ADRIANA  
Fecha de Ingreso: septiembre-2005
Mensajes: 263
Antigüedad: 18 años, 7 meses
Puntos: 0
Gracias, pero mira lo que me saca Mysql:

Código PHP:
Esta versión de MySQL no soporta todavia 'LIMIT & IN/ALL/ANY/SOME subquery' 
  #4 (permalink)  
Antiguo 23/09/2005, 09:31
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Puedes hacer 2 cosas,

1- Actualizar la versión de MySQL (a 4.18 estable)

o

2- Intentar esto (aunque no se si te lo cojera)

[CODE]
select country, count(provider_id)as total
from provider group by country order by total DESC Limit 5
UNION
Select 'otros' as country, count(provider_id) as total from provider Pro where not EXISTS (select provider_id
from provider where provider_id=Pro.provider_id group by country order by total DESC Limit 5 )
[CODE]

Creo recordar que era así la sintaxis, es que hace mucho que no uso el NOT EXISTS, puesto que es más complicado.

Un saludo
  #5 (permalink)  
Antiguo 23/09/2005, 09:44
Avatar de ADIÓS_ADRIANA  
Fecha de Ingreso: septiembre-2005
Mensajes: 263
Antigüedad: 18 años, 7 meses
Puntos: 0
No sale, me tira este error:

Código PHP:
Equivocado uso de UNION y  ORDER BY 
Si yo tengo Mysql 4.1.9

Gracias de Nuevo.


  #6 (permalink)  
Antiguo 23/09/2005, 10:23
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Pues como no te coja esto, (esta me ha funcionado a mi)
Código:
(select country, count(provider_id)as total
from provider group by country order by total DESC Limit 5)
UNION
(Select 'otros' as country, count(provider_id) as total from provider where not EXISTS (select country, count(provider_id)as total
from provider group by country order by total DESC Limit 5))
  #7 (permalink)  
Antiguo 23/09/2005, 11:01
Avatar de ADIÓS_ADRIANA  
Fecha de Ingreso: septiembre-2005
Mensajes: 263
Antigüedad: 18 años, 7 meses
Puntos: 0
Mira el error que me saca: ¿ Que podrá ser ?

Código PHP:
Commands out of sync;  You cant run this command now 
  #8 (permalink)  
Antiguo 23/09/2005, 11:20
Avatar de ADIÓS_ADRIANA  
Fecha de Ingreso: septiembre-2005
Mensajes: 263
Antigüedad: 18 años, 7 meses
Puntos: 0
Ah bueno, lo he colocado en una página y la consulta sale, lo que ha de ocurr¡r es una excepción porque estoy utilizando el Mysql Front 2,5 con Mysql 4.1.9


Qué otro manejador gráfico para versiones de mysql superiores me recomendais?
En phpmyadmin 2.6.1 también sale un error.

Como lo has probado tu?

En la pagina que si ejecuta la consulta sale la suma como 0 cero.
  #9 (permalink)  
Antiguo 23/09/2005, 11:25
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
prueba bajarte el "DBManager professional"
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #10 (permalink)  
Antiguo 23/09/2005, 11:36
Avatar de ADIÓS_ADRIANA  
Fecha de Ingreso: septiembre-2005
Mensajes: 263
Antigüedad: 18 años, 7 meses
Puntos: 0
Ok, ya lo bajé y configuré gracias.

La consulta No saca la suma:





Gracias de nuevo, es importante.
  #11 (permalink)  
Antiguo 23/09/2005, 12:20
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Hola ADIÓS_ADRIANA
¿no seri mejor que lo saques a nivel de codigo y no de consulta?
  #12 (permalink)  
Antiguo 23/09/2005, 12:22
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
prueba con lo siguiente

Código:
(select country, count(provider_id) as total
from provider group by country order by total DESC Limit 5)
UNION
(Select 'otros' as country, count(provider_id) as total 
from provider 
where not EXISTS (select country
from provider group by country order by count(provider_id) DESC Limit 5))
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #13 (permalink)  
Antiguo 23/09/2005, 12:22
Avatar de ADIÓS_ADRIANA  
Fecha de Ingreso: septiembre-2005
Mensajes: 263
Antigüedad: 18 años, 7 meses
Puntos: 0
Como sería, no tengo idea, no te pido que lo hagas (Claro que si está inspirao, mejo), pero dame un ejemplo con el cual guiarme...
  #14 (permalink)  
Antiguo 23/09/2005, 12:26
Avatar de ADIÓS_ADRIANA  
Fecha de Ingreso: septiembre-2005
Mensajes: 263
Antigüedad: 18 años, 7 meses
Puntos: 0
Cita:
Iniciado por Linterns
prueba con lo siguiente

Código:
(select country, count(provider_id) as total
from provider group by country order by total DESC Limit 5)
UNION
(Select 'otros' as country, count(provider_id) as total 
from provider 
where not EXISTS (select country
from provider group by country order by count(provider_id) DESC Limit 5))

Gracias pero no funciona:

Código PHP:
Executing QueryWait ...
MySQL ERROR:

Invalido uso de función en grupo 
  #15 (permalink)  
Antiguo 23/09/2005, 12:39
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
ADIÓS_ADRIANA
¿que lenguaje estas usando? php, asp, etc
  #16 (permalink)  
Antiguo 23/09/2005, 12:41
Avatar de ADIÓS_ADRIANA  
Fecha de Ingreso: septiembre-2005
Mensajes: 263
Antigüedad: 18 años, 7 meses
Puntos: 0
Php 4.3.10
  #17 (permalink)  
Antiguo 23/09/2005, 16:52
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Prueba de esta manera
Código PHP:
$sql=mysql_query("select country, count(provider_id)as total from provider group by country order by total DESC Limit 5 ");
$total=0;
while(
$row=mysql_fetch_array($sql)){
    
$total+= $row["total"];
}
echo 
"total = ".$total
Saludos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:53.