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

Mysql групови данни по време

Ако групирате по една (или повече) колони, тогава трябва да направите нещо с всички негрупирани колони, за да има смисъл на вашата заявка.

Трябва да кажете какво искате да се направи с всички групирани стойности. Обикновено нещо като SUM(), AVG(), MIN(), MAX(), GROUP_CONCAT()

Ако групирате по m_from, тогава няма да можете да сортирате по m_time, тъй като всички записи за m_from ще бъдат групирани заедно, а за негрупираните стойности ще получите произволен отговор, тъй като не сте го направили посочете какво да правите с групата.

Вероятно искате да използвате агрегатна функция, като MAX(m_time), за да получите най-високата стойност за m_time и след това да сортирате по нея.

Бих препоръчал нещо като.

 SELECT MAX(m_id),m_from, MAX(m_time) as latest FROM messages 
    WHERE m_to='XXX' OR m_from='XXX' 
    GROUP BY m_from 
    ORDER BY latest DESC;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Varchar или текстови типове данни за дължина на низовете до няколко хиляди символа

  2. Как да направите по-бърза заявка за най-добрия n-на-група?

  3. Мигрирайте данни и схема от MySQL към SQL Server

  4. връщане на редовете към стойността на колоната по подразбиране mysql

  5. Възможно ли е да се направи sql инжекция със съхранени процедури?