unicos - traer registros repetidos sql
Cómo seleccionar registros únicos por SQL (7)
Depende de qué rown quieras devolver para cada artículo único. Sus datos parecen indicar el valor de datos mínimo, por lo que en este caso para SQL Server.
SELECT item, min(data)
FROM table
GROUP BY item
Cuando realizo "SELECT * FROM table" obtengo resultados como a continuación:
1 item1 data1
2 item1 data2
3 item2 data3
4 item3 data4
Como puede ver, hay registros de duplex de la columna 2 (elemento 1 están duplicados). Entonces, ¿cómo podría obtener un resultado como este?
1 item1 data1
2 item2 data3
3 item3 data4
Solo se devuelve un registro del duplicado, junto con el resto de los registros únicos.
Encuentro que si no puedo usar DISTINCT por algún motivo, entonces GROUP BY funcionará.
Para obtener todas las columnas en su resultado, debe colocar algo como:
SELECT distinct a, Table.* FROM Table
colocará una como la primera columna y el resto serán TODAS las columnas en el mismo orden que su definición. Esto es, la columna a se repetirá.
Puede usar SELECT DISTINCT
o GROUP BY
para hacer esto.
SELECT DISTINCT a, c
FROM table_c
o
SELECT a, b
FROM table_c
GROUP BY a, b
GROUP BY
será más útil si desea usar alguna función agregada como COUNT()
o SUM()
SELECT a, b, count(*)
FROM table_c
GROUP BY a, b
SELECT a, b, sum(d)
FROM table_c
GROUP BY a, b
Seleccione Eff_st desde (seleccione EFF_ST, ROW_NUMBER () encima (PARTITION BY eff_st) XYZ - desde ABC.CODE_DIM
) donde XYZ = 1 ordena por EFF_ST busca solo las primeras 5 filas
Si solo necesita eliminar duplicados, utilice DISTINCT
. GROUP BY
debe usar para aplicar operadores agregados a cada grupo
solo use la unión interna porque group by no funcionará con varias columnas que digan que no están contenidas en ninguna de las funciones agregadas.
SELECT a.*
FROM yourtable a
INNER JOIN
(SELECT yourcolumn,
MIN(id) as id
FROM yourtable
GROUP BY yourcolumn
) AS b
ON a.yourcolumn= b.yourcolumn
AND a.id = b.id;