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

mysql_num_rows <= valor máximo de un total

Estas en el tema de mysql_num_rows <= valor máximo de un total en el foro de Bases de Datos General en Foros del Web. Hola A ver si me puedo explicar bien. Pongamos que en mi barrio hay 15 panaderos, y queremos saber que panadero hace más barras de ...
  #1 (permalink)  
Antiguo 11/02/2009, 10:51
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 7 meses
Puntos: 13
mysql_num_rows <= valor máximo de un total

Hola

A ver si me puedo explicar bien.

Pongamos que en mi barrio hay 15 panaderos, y queremos saber que panadero hace más barras de pan al dia:

Juan = 15
Pepe = 13
Jose = 20
Chuck norris = 35
Felipe = 12


Se supone que para obtener esos resultados he echo un mysql_num_rows a una tabla where panadero='$nombre'

Pero cómo puedo saber cual es el que más barras de pan ha hecho?
osea que sólo me muestre chuck norris, ya que chuck norris es el panadero que más barras de pan ha realizado.


Espero haberme explicado bien.

gracias.
  #2 (permalink)  
Antiguo 11/02/2009, 12:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: mysql_num_rows <= valor máximo de un total

Mmm pues puedes hacer:
Código sql:
Ver original
  1. SELECT `panadero`, MAX(`barras_de_pan`) FROM `panaderias` GROUP BY `panadero` LIMIT 1

Saludos
  #3 (permalink)  
Antiguo 11/02/2009, 12:47
 
Fecha de Ingreso: junio-2007
Mensajes: 22
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: mysql_num_rows <= valor máximo de un total

Bueno:espero te sirva
select top1 nombre_panadero from panaderos order by nro_panes desc

Primero se ordena tu tabla en forma descendente, de acuerdo al numero de panes que hacen. y del resultado solo se selecciona el primero(top 1)
Saludos
  #4 (permalink)  
Antiguo 12/02/2009, 04:06
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 7 meses
Puntos: 13
Respuesta: mysql_num_rows <= valor máximo de un total

Ay muchas gracias!

Pero no me ha servido

os explico por que.

Cada vez que un panadero crear una barra de pan se inserta un nuevo registro en la base de datos.

Eso quiere decir que:

Chuck norris hace 1 barra depan => insert into barrasdepan (barradepan,quien) VALUES ('1','chucknorris')

Así cuantas barras de pan sean, por lo tanto si chuck norris hace 4 barras de pan se ejecutaría 4 INSERT INTO:

insert into barrasdepan (barradepan,quien) VALUES ('1','chucknorris')
insert into barrasdepan (barradepan,quien) VALUES ('1','chucknorris')
insert into barrasdepan (barradepan,quien) VALUES ('1','chucknorris')
insert into barrasdepan (barradepan,quien) VALUES ('1','chucknorris')


Entonce para saber cuantas barras de pan ha hecho chuck norris hoy hago un:
mysql_num_rows = > SELECT FROM barrasdepan WHERE quien='chucknorris'

y eso me devuelve que chuck norris ha hecho 4 barras de pan.

Peeeeeero! si yo tengo varios panaderos y tengo que Pepe ha hecho 3 barras de pan y chuck norris 4 yo quiero saber el que más barras de pan ha hecho, que en este caso es chuck norris, pero no se cómo sería la sentencia.

Saludos
  #5 (permalink)  
Antiguo 12/02/2009, 05:58
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: mysql_num_rows <= valor máximo de un total

a ver si esto:
Código sql:
Ver original
  1. SELECT quien, COUNT( bp.barradepan )
  2. FROM barrasdepan bp
  3. GROUP BY bp.quien
  4. HAVING COUNT( bp.barradepan ) = (
  5. SELECT COUNT( barradepan ) total
  6. FROM barrasdepan
  7. GROUP BY quien
  8. ORDER BY total DESC
  9. LIMIT 1 )
  #6 (permalink)  
Antiguo 13/02/2009, 02:33
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 7 meses
Puntos: 13
Respuesta: mysql_num_rows <= valor máximo de un total

Cita:
Iniciado por jurena Ver Mensaje
a ver si esto:
Código sql:
Ver original
  1. SELECT quien, COUNT( bp.barradepan )
  2. FROM barrasdepan bp
  3. GROUP BY bp.quien
  4. HAVING COUNT( bp.barradepan ) = (
  5. SELECT COUNT( barradepan ) total
  6. FROM barrasdepan
  7. GROUP BY quien
  8. ORDER BY total DESC
  9. LIMIT 1 )
Vayaaa!!!! muchas gracias funciona perfectamente :apla uso:

Jamás habría legado a realizar ese razonamiento en mi cabeza
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 11:24.