¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Optimizando consultas con COUNT para tablas de base de datos

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

Hola,

Dada la siguiente estructura de tabla de base de datos que incluye datos.

|contract_id|personnel_number|metadata|
        |ABC123     |1122            |  ...   ||ABC124     |1122            |  ...   ||ABC125     |1122            |  ...   ||ABC126     |2233            |  ...   ||ABC127     |2233            |  ...   ||ABC128     |3344            |  ...   |

Usando un SELECT con COUNT me gustaría obtener el siguiente resultado:

|contract_id|personnel_number|metadata|count|
        |ABC123     |1122            |  ...   | 3   ||ABC124     |1122            |  ...   | 3   ||ABC125     |1122            |  ...   | 3   ||ABC126     |2233            |  ...   | 2   ||ABC127     |2233            <    
            
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola fedaros ,

sí, pero entonces es una consulta SQL distinta que solo proporcionará el recuento como resultado.

En general, tienes razón. Usando COUNT quiero contar el tamaño del grupo de números de personal.

Pero.

Quiero 1 consulta SQL que devuelva 1 tabla interna que proporcione la siguiente estructura:

|contract_id|personnel_number|metadata|count|
|ABC123     |1122            |  ...   | 3   ||ABC124     |1122            |  ...   | 3   ||ABC125     |1122            |  ...   | 3   ||ABC126     |2233            |  ...   | 2   ||ABC127     |2233            |  ...   | 2   ||ABC128     |3344            |  ...   | 1   |

Entonces, para cada fila quiero devolver un campo adicional de recuento que contenga el tamaño del grupo del número de personal relacionado.

Saludos
Daniel

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

raymond.giuseppi , lamentablemente esto no funciona, error de sintaxis.

Parece que no puedo usar COUNT en una subconsulta de esta manera :( ... pero eso es parte de mi pregunta.

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

Prueba algo como

SELECT
  FROM dtab AS contracts
  FIELDS
    contracts~*,
    ( SELECT COUNT(*) FROM dtab AS anotherid 
	  WHERE contracts~personnel_number = anotherid~personnel_number ) AS count.
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Daniel,

No pude entender el problema que estás enfrentando. En tu ejemplo, el SQL funciona bien por sí solo:

SELECT COUNT(*) FROM dtab WHERE contracts~personnel_number = ??

Si deseas para todos los números de personal, simplemente agrega un GROUP BY:

SELECT COUNT(*), personnel_number FROM dtab GROUP BY personnel_number

Por favor, explícame más.

Saludos, Fernando Da Rós

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?