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

Bagaimana cara mengambil catatan pertama dan terakhir dari catatan yang dikelompokkan dalam kueri MySQL dengan fungsi agregat?

Anda ingin menggunakan GROUP_CONCAT dan SUBSTRING_INDEX :

SUBSTRING_INDEX( GROUP_CONCAT(CAST(open AS CHAR) ORDER BY datetime), ',', 1 ) AS open
SUBSTRING_INDEX( GROUP_CONCAT(CAST(close AS CHAR) ORDER BY datetime DESC), ',', 1 ) AS close 

Ini menghindari subkueri yang mahal dan menurut saya umumnya lebih efisien untuk masalah khusus ini.

Lihat halaman manual untuk kedua fungsi untuk memahami argumennya, atau kunjungi artikel ini yang menyertakan contoh cara melakukan konversi jangka waktu di MySQL untuk penjelasan lebih lanjut.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Aktifkan akses jarak jauh ke database MySQL

  2. Cara mengatur struktur indeks ElasticSearch dengan beberapa binding entitas

  3. MySQL SELECT LIKE atau REGEXP untuk mencocokkan beberapa kata dalam satu catatan

  4. Hitung jumlah kemunculan string di bidang VARCHAR?

  5. Batas kondisi MySQL IN