Encontrar repetidos en varias columnas

Tengo una tabla que contiene 10 columnas, que he importado de Excel:

Nro1, nro2, nro3, nro4, nro5, nro6, nro7, nro8, nro9, nro10. Contienen números tipo texto, por ejemplo.

nro1 nro2 nro3 nro4,..., nro10

0005 4578 1247 1326,...

2147 1247 4587 0035

Necesito hacer una consulta SQL que me muestre los repetidos, en este caso debe salir el número 1247, también me sirve hacerlo con VBA desde Excel.

1 Respuesta

Respuesta
2

Lo puede hacer con consulta de unión. En este código asumo que la tabla se llama tblopciones y que los campos son nro1, nro2, ... nro10. Cree una consulta nueva en vista SQL e ingrese el siguiente script.

SELECT todos_los_numeros.numero, Count(*) AS cantidad
FROM (SELECT nro1 AS numero FROM tblopciones
    Union all
    SELECT nro2 FROM tblopciones
    UNION ALL
    SELECT nro3 FROM tblopciones
    UNION ALL
    SELECT nro4 FROM tblopciones
    UNION ALL
    SELECT nro5 FROM tblopciones
    UNION ALL
    SELECT nro6 FROM tblopciones
    UNION ALL
    SELECT nro7 FROM tblopciones
    UNION ALL
    SELECT nro8 FROM tblopciones
    UNION ALL
    SELECT nro9 FROM tblopciones
    UNION ALL
    SELECT nro10 FROM tblopciones
)  AS todos_los_numeros
GROUP BY todos_los_numeros.numero
HAVING (((Count(*))>1))
ORDER BY todos_los_numeros.numero;

En el caso de su pregunta el resultado debe ser:

numero  cantidad

1247         2

Gracias. Me gustaría hacer la misma consulta, pero en PostgreSQL. ¿Es posible?

Claro Martha es totalmente posible y mucho más practico

SELECT numero, COUNT(*) AS cantidad
FROM (
    SELECT UNNEST(ARRAY[nro1, nro2, nro3, nro4, nro5, nro6, nro7, nro8, nro9, nro10]) AS numero
    FROM tblopciones
) AS todos_los_numeros
GROUP BY numero
HAVING COUNT(*) > 1
ORDER BY numero;

Explicación:

UNNEST: Esta función expande un array a un conjunto de filas, lo que te permite combinar todas las columnas en una sola.
ARRAY: Aquí se utiliza un array que incluye todas las columnas nro1 a nro10.

Estos son uno de los motivos que no utilizo el SQL de Access porque es muy limitado, además, no es el indicado para aplicaciones multiusuario.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas