Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-04-2008
valiant_crps valiant_crps is offline
Registrado
 
Registrado: abr 2008
Posts: 5
Poder: 0
valiant_crps Va por buen camino
calculo de porcentaje

Hola amigos, tengo una tabla con el campo sexo (masculino y femenino) me gustaria saber como calcular el porcentaje de hombres y mujeres con una sola consulta sql.

saludos y gracias de antemano
Responder Con Cita
  #2  
Antiguo 03-04-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 24
BlueSteel Va por buen camino
Cita:
Empezado por valiant_crps Ver Mensaje
Hola amigos, tengo una tabla con el campo sexo (masculino y femenino) me gustaria saber como calcular el porcentaje de hombres y mujeres con una sola consulta sql.

saludos y gracias de antemano

Hola valiant_crps

Primero que nada,,, te damos la Bienvenida al Club... y te invitamos a leer nuestra guia de estilo...

con respecto a tu consulta... lo necesitas realizar desde algun motor de base de datos en específico...???

Tambien me gustaria saber si ya tienes el dato de cuantas personas son masculinas y cuantas son femenidas... o tienes que recorrer la tabla y preguntar en algun campo el sexo ???

Salu2
__________________
BlueSteel
Responder Con Cita
  #3  
Antiguo 03-04-2008
valiant_crps valiant_crps is offline
Registrado
 
Registrado: abr 2008
Posts: 5
Poder: 0
valiant_crps Va por buen camino
Hola, gracias por la bienvenida:
Bueno necesito hacer esto desde mysql, puedo contar el total con una consulta y contar los hombres y mujeres desde otra, pero lo ideal para mi es hacerlo en una sola, donde pueda listar el porcentaje de hombres y mujeres, esto para optimizar mi codigo en php.
Responder Con Cita
  #4  
Antiguo 03-04-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 24
BlueSteel Va por buen camino
Cita:
Empezado por valiant_crps Ver Mensaje
Hola, gracias por la bienvenida:
Bueno necesito hacer esto desde mysql, puedo contar el total con una consulta y contar los hombres y mujeres desde otra, pero lo ideal para mi es hacerlo en una sola, donde pueda listar el porcentaje de hombres y mujeres, esto para optimizar mi codigo en php.
Pero si ya tienes el total de hombres y mujeres .. no necesitas realizar eso desde el SQL...

basta con % Hombre => ( Tot_Hombres / ( Tot_Hombres + Tot_Mujeres )) * 100
basta con % Mujeres => ( Tot_Mujeres / ( Tot_Hombres + Tot_Mujeres )) * 100

no se como se realiza esto en php.. pero matemáticamente es más facil...

salu2
__________________
BlueSteel
Responder Con Cita
  #5  
Antiguo 03-04-2008
valiant_crps valiant_crps is offline
Registrado
 
Registrado: abr 2008
Posts: 5
Poder: 0
valiant_crps Va por buen camino
SELECT sexo, (count(sexo)/(select count(*) from mi_tabla))*100 as cantidad FROM mi_tabla GROUP BY sexo;

esa es la consulta que necesitaba a mas de alguien le va a servir , estoy seguro...

gracias por la ayuda
Responder Con Cita
  #6  
Antiguo 03-04-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 24
BlueSteel Va por buen camino
Cita:
Empezado por valiant_crps Ver Mensaje
SELECT sexo, (count(sexo)/(select count(*) from mi_tabla))*100 as cantidad FROM mi_tabla GROUP BY sexo;

esa es la consulta que necesitaba a mas de alguien le va a servir , estoy seguro...

gracias por la ayuda
Hola

estube probando tu sentencia SQL... pero siempre me entrega 0 ?? estas seguro que te funciona...

Código SQL [-]
Select   per_sexo,(Count(per_sexo)/(Select Count(1) As Total
From Persona))*100 as Porcentaje
From     persona
Group by per_sexo

si ejecuto la sentencia anterior me entrega esto

Código:
 
per_sexo  Porcentaje
FE           0
MA          0
Tambien ejecute esta sentencia... para que me muestre la cantidad y el porcentaje

Código SQL [-]
Select   per_sexo, Count(per_sexo)as Cantidad, (Count(per_sexo)/(Select Count(1) As Total
From Persona))*100 as Porcentaje
From     persona
Group by per_sexo

y me muestra esto
Código:
 
per_sexo  Cantidad  Porcentaje
FE           11           0
MA          15           0

Salu2
__________________
BlueSteel

Última edición por BlueSteel fecha: 03-04-2008 a las 17:42:24.
Responder Con Cita
  #7  
Antiguo 04-04-2008
valiant_crps valiant_crps is offline
Registrado
 
Registrado: abr 2008
Posts: 5
Poder: 0
valiant_crps Va por buen camino
hola tu utilizas count(1) yo ocupo count(*) en realidad no tengo donde probarlo en este momento... pero la consulta si funciona , fijate de escribirla correctamente

saludos

otra cosa:

la version anterior de mysql 4.1.xx no permite hacer consultas anidadas asi que ojo con eso tambien o mysql lanzara un error
Responder Con Cita
  #8  
Antiguo 04-04-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 24
BlueSteel Va por buen camino
Smile

Cita:
Empezado por valiant_crps Ver Mensaje
hola tu utilizas count(1) yo ocupo count(*) en realidad no tengo donde probarlo en este momento... pero la consulta si funciona , fijate de escribirla correctamente
No tiene nada que ver eso.... pues si pongo esto

Código SQL [-]
Select   per_sexo, Count(1)as Cantidad, (Count(per_sexo)/(Select Count(*) As Total
From Persona))*100 as Porcentaje
From     persona
Group by per_sexo

igual me entrega esto

Código:
per_sexo  Cantidad  Porcentaje
FE           11           0
MA          15           0

Eso fue un truco que me enseñaron en algun cursillo de SQL 2005... que el usar el Count(*) y el Count(1) te entregan un mismo valor, siendo este último más rápido en el tiempo que demora en obtener el resultado...


Cita:
Empezado por valiant_crps Ver Mensaje
la version anterior de mysql 4.1.xx no permite hacer consultas anidadas asi que ojo con eso tambien o mysql lanzara un error
El problema puede ser que lo estoy probando en SQL Server 2000, y tu sentencia en MySQL si funciona....

Pero como en el post nunca especificastes que lo necesitabas en MySQL... solo que querias una sentencia SQL...

Salu2
__________________
BlueSteel

Última edición por BlueSteel fecha: 04-04-2008 a las 16:27:46. Razón: falto info
Responder Con Cita
  #9  
Antiguo 05-04-2008
valiant_crps valiant_crps is offline
Registrado
 
Registrado: abr 2008
Posts: 5
Poder: 0
valiant_crps Va por buen camino
Cita:
Empezado por valiant_crps
Hola, gracias por la bienvenida:
Bueno necesito hacer esto desde mysql, puedo contar el total ...



no creo que una misma consulta sql, te entregue valores distintos en motores de bases de datos distinto, pero ya todo salio bien y te doy gracias bluesteel por toda la preocupación y la buena disposicion para ayudar...
Responder Con Cita
  #10  
Antiguo 07-04-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 24
BlueSteel Va por buen camino
Smile tienes razon ... era MySQL

Cita:
Empezado por valiant_crps Ver Mensaje
no creo que una misma consulta sql, te entregue valores distintos en motores de bases de datos distinto, pero ya todo salio bien y te doy gracias bluesteel por toda la preocupación y la buena disposicion para ayudar...
si.. puede ser.. tendriamos que ver si a alguien más le funciona la sentencia en el SQL Server 2000 ... o le pasa lo mismo que a mi...

Tambien debo mencionar que no asimile el MySQL en tu pregunta

pero es que me quede con la pregunta inicial...

Cita:
Empezado por valiant_crps Ver Mensaje
Hola amigos, tengo una tabla con el campo sexo (masculino y femenino) me gustaria saber como calcular el porcentaje de hombres y mujeres con una sola consulta sql.
bueno..ya sabes.. a veces uno lee pero no lograr asimilar lo que dicen....

Salu2
__________________
BlueSteel
Responder Con Cita
  #11  
Antiguo 07-04-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Cita:
Empezado por valiant_crps Ver Mensaje
otra cosa:

la version anterior de mysql 4.1.xx no permite hacer consultas anidadas asi que ojo con eso tambien o mysql lanzara un error
No entiendo, a que llamas consultas anidadas, a subconsultas?
Porque si es asi, yo utilizo la versión 4.0.xx de mySQL y casi todas mis aplicaciones usan subconsultas.

Código SQL [-]
Select a.categoria,
  (Select sum(debe) from caja t1
   where t1.categoria = a.categoria and year(t1.fecha) = 2008) as egreso2008,
  (Select sum(haber) from caja t2
   where t2.categoria = a.categoria and year(t2.fecha) = 2008) as ingreso2008,
  (Select sum(debe) from caja u1
   where u1.categoria = a.categoria and year(u1.fecha) = 2007) as egreso2007,
  (Select sum(haber) from caja u2
   where u2.categoria = a.categoria and year(u2.fecha) = 2007) as ingreso2007
from parapersonales a

Ejecutado con mySQL 4.0.22

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Calculo del porcentaje con base en el total Patri Forero Impresión 2 27-11-2006 16:33:02
Porcentaje de uso del CPU OSKR C++ Builder 2 13-07-2006 01:23:53
Incrementa el porcentaje y no imprime. zugazua2001 Impresión 1 19-05-2006 08:59:19
Porcentaje en un ProgressBar silviodp OOP 1 15-04-2004 06:41:41
Matemáticas: Calcular porcentaje DarkByte Varios 9 01-02-2004 17:42:08


La franja horaria es GMT +2. Ahora son las 11:43:21.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi