sql >> Databasteknik >  >> RDS >> Mysql

MySQL:Ignorera en vald kolumn när du använder DISTINCT

Det finns två fall här. Låt oss säga att du har uppgifterna

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

Att ta distinkta värden på A, B ger bara ett resultat (a,b), med två värden för kolumn C. Så frågan är om du vill se alla värden på C eller bara ett värde för varje distinkt värde i kolumn A och B ?

Om du bara vill se ett värde på C kan du skriva

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

Å andra sidan, om du vill se alla värden för C så

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

ger dig det. Det sista alternativet behövs om det finns andra kolumner i tabellen.



  1. MySQL LIKE vs LOCATE

  2. Konvertera 'smalldatetime' till 'datetime' i SQL Server (T-SQL-exempel)

  3. Hur man beräknar ålder i MariaDB

  4. Upprätthålla ett grupperat löpande MAX (eller MIN)