Quiero ejecutar una consulta que elimina las filas duplicadas basado en los valores de la colA y colby.
Sin embargo, todavía quiero volver a los valores de colC y frío.

Aquí es un simple ejemplo de lo que tengo hasta ahora:

SELECT DISTINCT colA, colB   ?colC, colD?
FROM TABLE1

o

SELECT colA, colB    ?colC, colD?
FROM TABLE1
GROUP BY colA, colB

El método no me permite volver colC, y el frío, a menos que me marque como valores distintos o de grupo como la colA y colby. Yo no quiero hacer esto, sólo la colA y colby, junto necesidad de ser distinto no colC y frío. Sólo quiero volver a ellos.

Alguna idea de cómo puedo lograr esto?

  • Suponiendo que hay varias filas en table1 con un conjunto particular de valores para colA y colB, el conjunto de colC y colD de los valores que desea que se devuelvan? Los valores mínimos? Los valores máximos? La «primera» o «último» de los valores (en cuyo caso sería necesario que nos diga cómo el orden de los datos, de modo que «lo primero» y «último» son significativas)?
  • Puedes publicar algunos datos de la muestra y el resultado deseado?
  • Usted puede elaborar un poco más sobre cómo me gustaría utilizar el «primero» y «último»? Creo que siempre el primer valor. ¿Cómo que mirar con mi ejemplo?
  • y el «último» se basa en disponer de manera de ordenar los datos. Si hay dos filas en table1 con idéntico colA y colB valores, ¿cómo sabes que es la «primera» fila? Hay una columna adicional (una marca de tiempo, por ejemplo, o un monótonamente creciente table1_id)?
InformationsquelleAutor Baxter | 2013-02-25

3 Comentarios

  1. 10

    ¿Quieres list_agg?

    select colA, colB,
           list_agg(distinct colC, ','),
           list_agg(distinct colD, ',')
    from Table1
    Group by ColA, ColB

    Si cualquier valor arbitrario para ColC y frío, puede utilizar min():

    select colA, colB, min(colC), min(colD)
    from Table1
    Group by ColA, ColB
    • Creo que cualquier valor arbitrario va a trabajar para mí en este caso. Voy a dar minutos al tratar sobre las columnas no quiero grupo.
    • La solución funciona muy bien, gracias.
  2. 1

    Las DISTINTAS aplica a todos los valores que usted está seleccionando, no sólo a algunas de las columnas. En su caso, se aplicarán a todos: colA, colby, colC, frío. Es imposible para seleccionar todas las columnas y hacer algo distinto y algunos no. La única manera de hacer esto se muestra en Gordon ejemplo, este es el único ejemplo válido y respuesta.

    • Estoy de acuerdo. He intentado utilizar min para las columnas que no me importa ser el único ni ordenado.

Dejar respuesta

Please enter your comment!
Please enter your name here