elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Duda en consulta
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Duda en consulta  (Leído 10,286 veces)
Kasswed
Colaborador
***
Desconectado Desconectado

Mensajes: 5.295

Rolling Stones


Ver Perfil
Duda en consulta
« en: 15 Diciembre 2009, 01:47 am »

Hola.

Me ha surgido una duda realizando consultas.

Necesito que, partiendo de una lista de sumas, la consulta me saque las máximas (habrá una máxima o más si las sumas son iguales) pero no sé hacerlo. Le he dado ya un montón de vueltas hoy y no caigo.

También me gustaría hacer esto mismo con el máximo de AVG() o de COUNT()...

¿Alguna sugerencia?

Gracias.


En línea

"He who allows himself to be insulted, deserves to be."

Repórtame cualquier falta a las normas del foro por mensaje privado.
дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.110


Ver Perfil WWW
Re: Duda en consulta
« Respuesta #1 en: 15 Diciembre 2009, 02:15 am »

MAX()


En línea

Kasswed
Colaborador
***
Desconectado Desconectado

Mensajes: 5.295

Rolling Stones


Ver Perfil
Re: Duda en consulta
« Respuesta #2 en: 15 Diciembre 2009, 02:20 am »

Gracias por tu respuesta, pero no me aclara nada.

Yo lo que quiero es usar MAX() en conjunto con las otras funciones, como SUM(), AVG() o COUNT().
En línea

"He who allows himself to be insulted, deserves to be."

Repórtame cualquier falta a las normas del foro por mensaje privado.
дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.110


Ver Perfil WWW
Re: Duda en consulta
« Respuesta #3 en: 15 Diciembre 2009, 02:48 am »

mm no pues no te entiendo, lo que podrías intentar es hacer un COUNT(MAX([campo])) o esperar a que alguien nos dé otra opinión.

Saludos.
En línea

fede_cp


Desconectado Desconectado

Mensajes: 527


"porque pensar nunca fue entender"


Ver Perfil WWW
Re: Duda en consulta
« Respuesta #4 en: 15 Diciembre 2009, 03:43 am »

cita un ejemplo

saludos
En línea

somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!
Kasswed
Colaborador
***
Desconectado Desconectado

Mensajes: 5.295

Rolling Stones


Ver Perfil
Re: Duda en consulta
« Respuesta #5 en: 15 Diciembre 2009, 03:51 am »

Imagina que tienes una tabla de usuarios y una tabla de posts.

En la tabla de usuarios información referente a usuarios como el id (primary key), nombre, la edad etc.

En la tabla de posts tienes la ID del usuario que postea (como foreign key de usuarios), la id del post, dónde postea (URL) y lo que postea.

Ahora quieres sacar el usuario que tiene el número máximo de posts en total.

Habría que contar los posts y de ahí sacar el máximo.

No se puede hacer con TOP o LIMIT porque puede haber varios usuarios con el mismo número de post y como máximos.

¿Cómo se haría?
En línea

"He who allows himself to be insulted, deserves to be."

Repórtame cualquier falta a las normas del foro por mensaje privado.
fede_cp


Desconectado Desconectado

Mensajes: 527


"porque pensar nunca fue entender"


Ver Perfil WWW
Re: Duda en consulta
« Respuesta #6 en: 15 Diciembre 2009, 04:06 am »

Un ejemplo hipotetico sería


Código
  1. <?php
  2. $con="SELECT MAX(id_post) FROM usuarios";
  3. $row=mysql_query($con, $conexion);
  4. $rrs=mysql_fetch_array($row);
  5. $con2="SELECT user from usuario WHERE id_post='".$rss["0"]."'";
  6. $row2=mysql_query($con2, $conexion);
  7. $rss=mysql_fetch_array(row2);
  8. echo $rss[0];
  9. ?>

algo asi se me ocurre

todavía nose si eso es lo que tenes pensado hacer :S

PD:no esta comprobado el codem porai hay algun error por ahi ;)

saludos
« Última modificación: 15 Diciembre 2009, 04:12 am por fede_cp » En línea

somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!
Kasswed
Colaborador
***
Desconectado Desconectado

Mensajes: 5.295

Rolling Stones


Ver Perfil
Re: Duda en consulta
« Respuesta #7 en: 15 Diciembre 2009, 04:22 am »

Hola.

No entiendo muy bien el código PHP.

¿Podrías ponerla en lenguaje SQL "puro"?

Gracias.
En línea

"He who allows himself to be insulted, deserves to be."

Repórtame cualquier falta a las normas del foro por mensaje privado.
fede_cp


Desconectado Desconectado

Mensajes: 527


"porque pensar nunca fue entender"


Ver Perfil WWW
Re: Duda en consulta
« Respuesta #8 en: 15 Diciembre 2009, 04:26 am »

y seria

SELECT MAX(id_post) FROM usuarios-----primera variable
               ¡
         toma el maximo id

SELECT user from usuarios WHERE id_post=la variable anterior
          ¡
     a partir del maximo id, selecciona al usuario con el maximo id_post (que seria el numero de posts).


esas serian las consultas básicas


saludos

« Última modificación: 15 Diciembre 2009, 04:38 am por fede_cp » En línea

somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!
^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Duda en consulta
« Respuesta #9 en: 15 Diciembre 2009, 13:43 pm »

Imagina este escenario basandome en lo que tu expones (Sobre tus 2 tablas usuarios y posts):

Código
  1.  
  2. mysql> SELECT * FROM usuarios;
  3. +----+--------+
  4. | id | nombre |
  5. +----+--------+
  6. |  1 | pepe   |
  7. |  2 | Mario  |
  8. |  3 | Maria  |
  9. |  4 | Juan   |
  10. |  5 | Jose   |
  11. +----+--------+
  12. 5 ROWS IN SET (0.00 sec)
  13.  
  14. mysql> SELECT * FROM post;
  15. +------+------+--------------------------+
  16. | id   | pid  | mensaje                  |
  17. +------+------+--------------------------+
  18. |    1 |    1 | Me gusta la lluvia       |
  19. |    1 |    1 | La vida es bella         |
  20. |    1 |    1 | Que pais visitar         |
  21. |    2 |    2 | Mi color favorito        |
  22. |    1 |    1 | Tu fruta favorita        |
  23. |    3 |    3 | Me gustan los viernes    |
  24. |    3 |    3 | Dia de mi cumple         |
  25. |    1 |    1 | Que computadora comprar? |
  26. |    1 |    1 | Mi laptop rosa           |
  27. |    4 |    4 | La manzana roja          |
  28. |    4 |    4 | Aprendiendo lotus        |
  29. |    4 |    4 | Viva Oracle              |
  30. |    4 |    4 | Tu comida preferida      |
  31. +------+------+--------------------------+
  32. 13 ROWS IN SET (0.00 sec)
  33.  
  34.  


Ahora quieres saber cuantos mensajes existen en la tabla post que hayan realizado cada usuario de la tabla usuarios.


Código
  1.  
  2. mysql> SELECT usuarios.nombre, COUNT(post.pid) FROM post INNER JOIN usu
  3. arios WHERE usuarios.id = post.id GROUP BY usuarios.id;
  4. +--------+-----------------+
  5. | nombre | COUNT(post.pid) |
  6. +--------+-----------------+
  7. | pepe   |               6 |
  8. | Mario  |               1 |
  9. | Maria  |               2 |
  10. | Juan   |               4 |
  11. +--------+-----------------+
  12. 4 ROWS IN SET (0.00 sec)
  13.  
  14.  

Ahora si tu proposito unicamente es saber que usuario es el que ha realizado la mayoria de posts:

Código
  1.  
  2.  
  3. mysql> SELECT usuarios.nombre, COUNT(post.pid) FROM post INNER JOIN usuarios whe
  4. re usuarios.id = post.id GROUP BY usuarios.id LIMIT 1;
  5. +--------+-----------------+
  6. | nombre | COUNT(post.pid) |
  7. +--------+-----------------+
  8. | pepe   |               6 |
  9. +--------+-----------------+
  10. 1 ROW IN SET (0.00 sec)
  11.  
  12.  
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda consulta :S
Bases de Datos
patrickxxx 1 2,361 Último mensaje 17 Junio 2011, 20:28 pm
por Shell Root
duda con consulta sql
Bases de Datos
Mr.Blue 1 3,575 Último mensaje 4 Agosto 2011, 02:06 am
por Beakman
Duda consulta php.
PHP
elopez 4 2,346 Último mensaje 29 Mayo 2014, 23:51 pm
por Mokonauta
Duda consulta SQL
Bases de Datos
soyloqbuskas 8 5,076 Último mensaje 3 Junio 2016, 20:44 pm
por HdM
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines