SQL - Como agrupar un resultado, por cada valor

 
Vista:

Como agrupar un resultado, por cada valor

Publicado por Franco (3 intervenciones) el 07/07/2021 15:27:17
Estimados,
tengo una consulta, talvez sea muy simple, pero no logro hacer el query.
Tengo esta tabla:

1
2
3
4
5
6
7
ValorID (int)
N1 nvarchar(2)
N2 nvarchar(2)
N3 nvarchar(2)
N4 nvarchar(2)
N5 nvarchar(2)
N6 nvarchar(2)

La tabla tiene unos 1200 registros, y yo lo que estoy necesitando hacer, es poder sacar cuales son los valores que mas salen (NRO), por cada ValorID.

Puedo hacerlo de forma individual, con este query:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT top 6 NRO, COUNT(NRO) VECES FROM
(SELECT N1 NRO FROM [Q6].[dbo].[q6.4jul21] where ValorID = '2832'
UNION ALL
SELECT n2 NRO FROM [Q6].[dbo].[q6.4jul21] where ValorID = '2832'
UNION ALL
SELECT n3 NRO FROM [Q6].[dbo].[q6.4jul21] where ValorID = '2832'
UNION ALL
SELECT n4 NRO FROM [Q6].[dbo].[q6.4jul21] where ValorID = '2832'
UNION ALL
SELECT n5 NRO FROM [Q6].[dbo].[q6.4jul21] where ValorID = '2832'
UNION ALL
SELECT n6 NRO FROM [Q6].[dbo].[q6.4jul21] where ValorID = '2832') T
GROUP BY NRO
order by VECES desc;

pero quiero hacer un solo query, que me tire todos los resultados de una vez, agrupado por ValorID, y que no tenga que hacerlo uno por uno por ValorID.

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Como agrupar un resultado, por cada valor

Publicado por Isaias (1921 intervenciones) el 07/07/2021 16:01:20
¿Cual es su base de datos?

1
2
3
SELECT NRO, COUNT(NRO) AS Cantidad
FROM [Q6].[dbo].[q6.4jul21]
GROUP BY NRO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como agrupar un resultado, por cada valor

Publicado por Franco (3 intervenciones) el 09/07/2021 16:49:07
Hola, que tal?
Gracias por contestar.
Mi base es una MS-SQL 2017.
Lo que estoy buscando, es hacer esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT NRO, COUNT(NRO) VECES FROM
(SELECT N1 NRO FROM [Q6].[dbo].[q6.8jul21]
UNION ALL
SELECT n2 NRO FROM [Q6].[dbo].[q6.8jul21]
UNION ALL
SELECT n3 NRO FROM [Q6].[dbo].[q6.8jul21]
UNION ALL
SELECT n4 NRO FROM [Q6].[dbo].[q6.8jul21]
UNION ALL
SELECT n5 NRO FROM [Q6].[dbo].[q6.8jul21]
UNION ALL
SELECT n6 NRO FROM [Q6].[dbo].[q6.8jul21]) T
GROUP BY NRO
order by VECES desc;

Pero para cada ValorID, es decir, quiero que me diga cuales son los valores mas salidores de todos los campos (n1+n2+n3+n4+n5+n6) de cada ValorID, separado.
El codigo de arriba que hice yo, me muestra el total de TODOS los ValorID, yo necesito que sea separado por cada ValorID.
Muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Como agrupar un resultado, por cada valor

Publicado por Isaias (1921 intervenciones) el 16/07/2021 05:13:57
Danos una muestra de tu SALIDA (Resultado)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar