Hasil SQL adalah set (multi) dan karenanya tidak memiliki urutan, kecuali jika Anda secara eksplisit mendefinisikannya. Ini berlaku untuk baris grup yang dihasilkan oleh GROUP BY
demikian juga; tidak ada urutan di dalam grup, sehingga agregat menerima nilai dalam urutan apa pun yang membuat kueri saat ini bergantung pada rencana, tata letak fisik, penjadwalan, dll. yang dihasilkan. Solusinya adalah mendefinisikan secara eksplisit pesan
:
func.group_concat(t.name.op("ORDER BY")(t.name))
Ini menggunakan fungsi operator umum untuk menghasilkan sintaks SQL yang diperlukan. SQLAlchemy menyediakan aggregate_order_by
helper untuk sintaks yang sama, tetapi hanya disediakan untuk dialek Postgresql.