Select distinct y no distintos valores de la columna

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 Kommentare

  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.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea