Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL:Игнорирайте избрана колона, когато използвате DISTINCT

Тук има два случая. Да приемем, че имате данните

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

Вземането на различни стойности на A, B дава само един резултат (a,b), с две стойности за колона C. Така че въпросът е дали искате да видите всички стойности на C или само една стойност за всяка отделна стойност на колони A и B ?

Ако искате да видите само една стойност на C, тогава можете да напишете

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

От друга страна, ако искате да видите всички стойности за C, тогава

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

ви дава това. Тази последна алтернатива е необходима, ако има други колони в таблицата.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:как мога да видя ВСИЧКИ ограничения на таблица?

  2. Laravel група по дата

  3. SQL IF SELECT заявката е нула, след това направете друга заявка

  4. PHP mysql_stmt::fetch() дава на PHP паметта за фатални грешки изчерпана

  5. Задълбочен поглед върху индексирането на база данни