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

Bagaimana memilih sampai jumlah tercapai

Anda memerlukan beberapa cara untuk memesan catatan mana yang diprioritaskan daripada yang lain saat menambahkan hingga unit maksimal Anda. Jika tidak, bagaimana Anda tahu kumpulan catatan mana yang berjumlah hingga 600 yang Anda simpan?

SELECT d.id, d.size, d.date_created
FROM documents d
INNER JOIN documents d2 ON d2.tag_id=d.tag_id AND d2.date_created >= d.date_created
WHERE d.tag_id=26
GROUP BY d.id, d.size, d.date_created
HAVING sum(d2.size) <= 600
ORDER BY d.date_created DESC

Ini hanyalah kueri dasar untuk membantu Anda memulai, dan masih ada sejumlah masalah yang harus diselesaikan:

  • Berhenti di <=600, jadi biasanya Anda tidak akan memenuhi batas ukuran dengan tepat. Ini berarti Anda mungkin ingin mengubahnya untuk memungkinkan satu catatan lagi. Misalnya, jika catatan pertama> 600, kueri tidak akan menghasilkan apa-apa, dan itu bisa menjadi masalah.
  • Tidak akan melakukan apa pun untuk memeriksa catatan tambahan yang lebih kecil di kemudian hari yang mungkin masih muat di bawah batas.
  • Data dengan nilai tanggal_buatan yang identik bisa jadi semacam 'dihitung dua kali' di sana-sini.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Haruskah saya menggunakan backticks atau tidak saat keluar dari kata kunci di MySQL?

  2. Cara Membuat Urutan di MySQL

  3. php mysql Group Dengan untuk mendapatkan catatan terbaru, bukan catatan pertama

  4. SQL:Di mana antara dua tanggal tanpa tahun?

  5. Objek MySQLConverter' tidak memiliki pengecualian atribut '_tuple_to_mysql' dengan konektor mysql