sql >> Database >  >> RDS >> Mysql

MySQL:negeer een geselecteerde kolom bij gebruik van DISTINCT

Er zijn hier twee gevallen. Stel dat u de gegevens heeft

A  B  C   (columns)
a  b  c1
a  b  c2

Het nemen van verschillende waarden van A, B geeft slechts één resultaat (a, b), met twee waarden voor kolom C. Dus de vraag is of u alle waarden van C wilt zien of slechts één waarde voor elke afzonderlijke waarde van kolommen A en B ?

Als u slechts één waarde van C wilt zien, kunt u schrijven

SELECT A, B, MAX(C) FROM YourTable
  GROUP BY A, B

Aan de andere kant, als je alle waarden voor C wilt zien, dan

SELECT DISTINCT A, B, C FROM YourTable WHERE ROW(A,B) IN 
  (SELECT A, B FROM YourTable
     GROUP BY A, B)

geeft je dat. Dit laatste alternatief is nodig als er andere kolommen in de tabel staan.



  1. Replicatieprestaties in een MySQL- of MariaDB Galera-cluster verbeteren

  2. Een paar kleine problemen met Hekaton-samples

  3. Oracle:hoe twee datums af te trekken en minuten van het resultaat te krijgen

  4. MySQL:WIJZIG TABEL als kolom niet bestaat