sql >> Database >  >> RDS >> Mysql

ORDER BY en GROUP BY samen gebruiken

Een manier om dit te doen die correct gebruikmaakt van 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

Hoe dit werkt:

  • selecteert de laatste tijdstempel voor elke afzonderlijke m_id in de subquery
  • selecteert alleen rijen uit table die overeenkomen met een rij uit de subquery (deze bewerking -- waarbij een join wordt uitgevoerd, maar geen kolommen zijn geselecteerd uit de tweede tabel, het wordt alleen gebruikt als een filter -- staat bekend als een "semijoin" voor het geval je nieuwsgierig was)
  • ordent de rijen


  1. Mysql om maandgewijs record te selecteren, zelfs als er geen gegevens bestaan

  2. connect ECONNREFUSED - node js , sql

  3. FOUT:Kan rij 0, col -1 van CursorWindow niet lezen. Zorg ervoor dat de cursor correct is geïnitialiseerd voordat u toegang krijgt tot gegevens

  4. PowerShell verbinden met Salesforce.com