Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/02/2015, 19:49
pcid
Usuario no validado
 
Fecha de Ingreso: abril-2008
Mensajes: 50
Antigüedad: 16 años
Puntos: 16
Respuesta: Consulta en mysql

je... Te dejo más masticado lo que te ha puesto khryztall....

Código SQL:
Ver original
  1. CREATE TABLE Sucursal (idSucursal INT AUTO_INCREMENT, nombreSucursal VARCHAR(100), ciudadSucursal VARCHAR(100), PRIMARY KEY (idSucursal));
  2.  
  3. INSERT INTO Sucursal (nombreSucursal, ciudadSucursal) VALUES ('SUCURSAL I', 'CIUDAD A');
  4. INSERT INTO Sucursal (nombreSucursal, ciudadSucursal) VALUES ('SUCURSAL II', 'CIUDAD B');
  5. INSERT INTO Sucursal (nombreSucursal, ciudadSucursal) VALUES ('SUCURSAL III', 'CIUDAD A');
  6. INSERT INTO Sucursal (nombreSucursal, ciudadSucursal) VALUES ('SUCURSAL IV', 'CIUDAD A');
  7. INSERT INTO Sucursal (nombreSucursal, ciudadSucursal) VALUES ('SUCURSAL V', 'CIUDAD C');
  8. INSERT INTO Sucursal (nombreSucursal, ciudadSucursal) VALUES ('SUCURSAL VI', 'CIUDAD A');
  9. INSERT INTO Sucursal (nombreSucursal, ciudadSucursal) VALUES ('SUCURSAL VII', 'CIUDAD A');
  10. INSERT INTO Sucursal (nombreSucursal, ciudadSucursal) VALUES ('SUCURSAL VIII', 'CIUDAD B');
  11. INSERT INTO Sucursal (nombreSucursal, ciudadSucursal) VALUES ('SUCURSAL IX', 'CIUDAD C');
  12. INSERT INTO Sucursal (nombreSucursal, ciudadSucursal) VALUES ('SUCURSAL X', 'CIUDAD B');
  13. commit;
  14.  
  15. -- Litado de sucursales ordenando por ciudadSucursal para contar a mano la cantidad de registros por ciudad
  16. SELECT * FROM Sucursal ORDER BY ciudadSucursal;
  17.  
  18. -- El dato que han pedido
  19. SELECT a.ciudadSucursal AS CIUDAD_CON_MAXIMA_CANTIDAD_DE_SUCURSALES
  20. FROM (
  21.         SELECT ciudadSucursal, COUNT(*) AS N FROM Sucursal GROUP BY ciudadSucursal ORDER BY 2 DESC LIMIT 1
  22.       ) a;
  23.  
  24. -- Agregando el mínimo a la consulta
  25. SELECT a.ciudadSucursal AS CIUDAD_CON_MAXIMA_CANTIDAD_DE_SUCURSALES, b.ciudadSucursal AS CIUDAD_CON_MINIMA_CANTIDAD_DE_SUCURSALES
  26. FROM (
  27.         SELECT ciudadSucursal, COUNT(*) AS N FROM Sucursal GROUP BY ciudadSucursal ORDER BY 2 DESC LIMIT 1
  28.       ) a,
  29.     (
  30.         SELECT ciudadSucursal, COUNT(*) AS N FROM Sucursal GROUP BY ciudadSucursal ORDER BY 2 LIMIT 1
  31.       ) b
  32.    ;
  33.  
  34. -- Agregando el mínimo y de paso las cantidades máxima y mínima...
  35. SELECT a.ciudadSucursal AS CIUDAD_CON_MAXIMA_CANTIDAD_DE_SUCURSALES, a.N AS CANTIDAD_MAXIMA,
  36.         b.ciudadSucursal AS CIUDAD_CON_MINIMA_CANTIDAD_DE_SUCURSALES, b.N AS CANTIDAD_MINIMA
  37. FROM (
  38.         SELECT ciudadSucursal, COUNT(*) AS N FROM Sucursal GROUP BY ciudadSucursal ORDER BY 2 DESC LIMIT 1
  39.       ) a,
  40.     (
  41.         SELECT ciudadSucursal, COUNT(*) AS N FROM Sucursal GROUP BY ciudadSucursal ORDER BY 2 LIMIT 1
  42.       ) b
  43.    ;

Saludos,

PCID.

Última edición por pcid; 05/02/2015 a las 07:40 Razón: Colorear código en formato SQL