I risultati SQL sono (multi) insiemi e come tali non hanno ordinamento, a meno che non ne venga esplicitamente definito uno. Questo si applica alle righe di gruppo prodotte da GROUP BY
anche; non c'è ordine all'interno dei gruppi, quindi gli aggregati ricevono valori in qualsiasi ordine venga prodotto dalla query corrente a seconda del piano, del layout fisico, della pianificazione ecc. La soluzione è definire esplicitamente il ordine
:
func.group_concat(t.name.op("ORDER BY")(t.name))
Questo utilizza una funzione operatore generica per produrre la sintassi SQL richiesta. SQLAlchemy fornisce aggregate_order_by
helper per la stessa sintassi, ma è fornito solo per il dialetto Postgresql.