Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL:Ignore uma coluna selecionada ao usar DISTINCT


Há dois casos aqui. Digamos que você tenha os dados
A  B  C   (columns)
a  b  c1
a  b  c2

Tomando valores distintos de A, B dá apenas um resultado (a,b), com dois valores para a coluna C. Então a questão é se você quer ver todos os valores de C ou apenas um valor para cada valor distinto das colunas A e B ?

Se você quiser ver apenas um valor de C, então você pode escrever
SELECT A, B, MAX(C) FROM YourTable
  GROUP BY A, B

Por outro lado, se você quiser ver todos os valores para C, então
SELECT DISTINCT A, B, C FROM YourTable WHERE ROW(A,B) IN 
  (SELECT A, B FROM YourTable
     GROUP BY A, B)

te dá isso. Esta última alternativa é necessária se houver outras colunas na tabela.