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.