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

Използване на ORDER BY и GROUP BY заедно

Един от начините да направите това, който правилно използва group by :

select l.* 
from table l
inner join (
  select 
    m_id, max(timestamp) as latest 
  from table 
  group by m_id
) r
  on l.timestamp = r.latest and l.m_id = r.m_id
order by timestamp desc

Как работи това:

  • избира най-новото времеви печат за всеки отделен m_id в подзаявката
  • избира само редове от table които съвпадат с ред от подзаявката (тази операция - където се извършва присъединяване, но не са избрани колони от втората таблица, тя просто се използва като филтър - е известна като "semijoin" в случай, че сте били любопитни)
  • подрежда редовете


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Общият брой ключалки надвишава размера на таблицата за заключване

  2. Как да създадете потребител в MySQL

  3. MIN() срещу LEAST() в MySQL:Каква е разликата?

  4. Безплатни методи за поправяне на повредена MySQL база данни

  5. Как да извършвате непрекъснати надстройки за MySQL