Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL Wybierz wiersze przy pierwszym wystąpieniu każdej unikalnej wartości

mysql ma na to "oszustwo":

select *
from mytable
group by cid;

To wszystko, czego potrzebujesz, ponieważ w mysql pozwala nie agregować kolumny niepogrupowane według (inne bazy danych zgłaszałyby błąd składni), w którym to przypadku wyprowadza tylko pierwsze wystąpienie każdej wartości grupowanej według. Pamiętaj jednak, że nie gwarantuje to sposób w którym określane jest „pierwsze” wystąpienie (będzie to tylko sposób wczytywania wierszy)

Jeśli chcesz konkretnego pierwsze wystąpienie, najpierw posortuj, a następnie zastosuj kod grupowania według:

select *
from (
    -- order by the "time" column descending to get the "most recent" row
    select * from mytable order by time desc
    ) x
group by cid


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy mogę przechowywać cenę w postaci dziesiętnej lub całkowitej w Mysql?

  2. Błąd zapytania SQL MySQL w WordPressie w klasie WPDB

  3. Jak zainstalować MySQL 5.7 na Amazon ec2?

  4. Maksymalny rozmiar tabeli dla bazy danych MySQL

  5. Inny sposób na ulepszenie zapytania SQL w celu uniknięcia unii?