¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo seleccionar los n valores más altos para cada valor de columna distinto - Guía paso a paso

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 3 Vistas
0
Cargando...

Hola a todos,

Mi requerimiento es seleccionar los n valores más altos para cada valor de columna distinto.

Supongamos que la tabla contiene tres campos - Nombre del Cliente, Región, Ventas

Necesito los 5 mejores clientes para cada región distinta basado en las ventas.



Agradecería cualquier ayuda al respecto.


Saludos,


Nakul Kothari

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola Krishna,

Gracias por tu respuesta. Esto es exactamente lo que quería.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Nakul,

Entendí tu requerimiento ahora. Podemos utilizar funciones de ventana para lograr lo que mencionaste a continuación:

SELECT Region_cd, País, SUM(Unidades) como Unidades

FROM

(

SELECT Region_cd, País, sum(Unidades) como Unidades, rank() OVER (PARTITION BY Region_cd ORDER BY SUM(Unidades) DESC ) como Rango

FROM "TABLA/VISTA"

GROUP BY Región, País

)

WHERE Rango <= 5

GROUP BY Región, País

Esto te dará los Top 5 países en cada región distinta.

Avísame si esto aborda la descripción de tu problema como esperabas.

Saludos,

Krishna Tangudu

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Krishna,

Gracias por tu respuesta.

Sin embargo, tu solución restringe la salida a solo 5 filas. Da un total de 5 filas.

Mientras que necesito los 5 principales clientes para cada región distinta.

Supongamos que la tabla es así

Quiero mi resultado - Los 2 principales clientes para cada región distinta basados en las ventas como

REGIÓN-----CLIENTE------VENTAS

C1 -------- -------P2----------- --------200

C1-------- -------P4----------- --------150

C2 -------- -------P2----------- --------300

C2-------- -------P1----------- --------200

Si es posible, también puedes proporcionar una solución gráfica

table.jpg
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Nakul,

¿Estás pidiendo ayuda para hacerlo en vistas gráficas o SQL?

Si es SQL, por favor encuentra lo siguiente:

SELECT TOP 5 Customer_Name , Region , sum(Sales) FROM TABLE

GROUP BY Customer_Name , Region

ORDER BY sum(Sales) DESC

Avísame si estás buscando una solución basada en vista gráfica.

Saludos,

Krishna Tangudu

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?