Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Data Grup Mysql Berdasarkan Waktu

Jika Anda mengelompokkan menurut satu (atau lebih) kolom, Anda harus melakukan sesuatu pada semua kolom yang tidak dikelompokkan agar kueri Anda masuk akal.

Anda harus mengatakan apa yang ingin Anda lakukan dengan semua nilai yang dikelompokkan. Biasanya sesuatu seperti SUM(), AVG(), MIN(), MAX(), GROUP_CONCAT()

Jika Anda mengelompokkan berdasarkan m_from, maka Anda tidak akan dapat mengurutkan berdasarkan m_time, karena semua catatan untuk m_from akan dikelompokkan bersama, dan untuk nilai yang tidak dikelompokkan, Anda akan mendapatkan jawaban yang berubah-ubah, karena Anda tidak tentukan apa yang harus dilakukan dengan grup.

Anda mungkin ingin menggunakan fungsi agregat, seperti MAX(m_time) untuk mendapatkan nilai tertinggi untuk m_time, lalu mengurutkannya.

Saya akan menyarankan sesuatu seperti.

 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. MySQL:SELECT akan memeriksa lebih dari MAX_JOIN_SIZE baris

  2. pernyataan yang disiapkan mysqli num_rows mengembalikan 0 sementara kueri mengembalikan lebih besar dari 0

  3. PENGECUALIAN:Operasi yang tidak didukung:konstruktor RawSocket (Dart dengan sqljocky5:^2.2.1)

  4. Bagaimana cara terhubung ke database MySQL jarak jauh melalui SSL menggunakan Play Framework?

  5. Python mysqldb di Mac OSX 10.6 tidak berfungsi