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

Wybierz tylko ostatnią wartość używając group by w mysql

Użyj prostej grupy według id_member, ale wybierz:

substring(max(concat(from_unixtime(timestamp),attendance)) from 20) as attendance

To dołącza obecność do znacznika czasu dla każdego wiersza w grupie, aby móc wybrać żądany znacznik czasu/obecność za pomocą max(), a następnie wyodrębnić tylko obecność.

Co concat() zwraca 19 znaków sformatowanego znacznika czasu (RRRR-mm-dd GG:MM:SS) z dodaną obecnością zaczynającą się od znaku 20; substring(... from 20) pobiera tylko frekwencję z (stringu) maksimum dla grupy. Możesz usunąć grupę przez i po prostu

select concat(from_unixtime(timestamp),attendance), timestamp, attendance

aby lepiej zrozumieć, w jaki sposób wykorzystuje max, aby uzyskać odpowiednią frekwencję.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak utworzyć tabelę przestawną w MySQL

  2. Jak mogę poprosić o pomoc w optymalizacji i naprawianiu zapytań w MySQL?

  3. Jakie są zalety trybu only_full_group_by?

  4. Jak mogę zmienić rozmiar kolumny w tabeli MySQL?

  5. MySQL - UPDATE zapytanie oparte na SELECT Query