"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo concatenar columnas basadas en GROUP BY en SQL?

¿Cómo concatenar columnas basadas en GROUP BY en SQL?

Publicado el 2025-01-21
Navegar:717

How to Concatenate Columns Based on GROUP BY in SQL?

Conexión de columna bajo la instrucción GROUP BY en SQL

En SQL, una forma común de combinar o unir columnas basándose en una declaración GROUP BY es utilizar una combinación de funciones agregadas y operadores de cadena. Exploremos cómo lograrlo.

Considere la siguiente tabla de ejemplo:

IDUsuarioActividadURL de página
1iact1ab
2i act1cd
3act2xy
4act2st

Para concatenar los valores de PageURL para cada usuario y grupo de actividad separados por comas, podemos utilizar la siguiente consulta:

SELECT [usuario], actividad, STUFF((SELECT ',' URL de la página DESDE el nombre de la tabla DONDE [usuario] = a. [usuario] AND actividad = a. actividad PARA LA RUTA XML ('')), 1, 1, '') COMO lista de URL DESDE el nombre de la tabla COMO GRUPO POR [usuario], actividad

Descomposición de consultas:

  • SELECCIONE [Usuario], Actividad, Lista de URL: Seleccione las columnas Usuario, Actividad y Lista de URL para mostrar.
  • COSAS: Concatena los valores de PageURL en una sola cadena.
  • (SELECT ',' PageURL...): subconsulta para extraer el valor de PageURL de cada grupo y concatenarlos con una coma como separador.
  • PARA RUTA XML (''): Convierte los resultados de la subconsulta en una cadena XML.
  • STUFF(... , 1, 1, ''): elimina la coma al principio de la cadena XML, dejando solo el valor concatenado.
  • GRUPO POR [USUARIO], ACTIVIDAD: Agrupa los resultados por 'Usuario' y 'Actividad' para que la unión se realice en cada combinación única.

La tabla resultante tendrá el diseño deseado:

UsuarioActividadLista de URL
Yo acto1ab, cd
act2xy, st

Este enfoque aprovecha el poder de las funciones agregadas y las operaciones de cadena para concatenar eficazmente valores de columna basados ​​en operaciones GROUP BY, lo que lo convierte en una solución flexible para una variedad de tareas de manipulación de datos.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3