sql >> Database teknologi >  >> RDS >> Mysql

sqlalchemy func.group_concat og tilfældig rækkefølge af data

SQL-resultater er (multi) sæt og har som sådan ingen rækkefølge, medmindre du udtrykkeligt definerer en. Dette gælder for grupperækker produceret af GROUP BY såvel; der er ingen rækkefølge inden for grupperne, og derfor modtager aggregater værdier i hvilken som helst rækkefølge den aktuelle forespørgsel afhængig af plan, fysisk layout, planlægning osv. tilfældigvis producerer. Løsningen er at eksplicit definere bestille :

func.group_concat(t.name.op("ORDER BY")(t.name))

Dette bruger en generisk operatorfunktion at producere den nødvendige SQL-syntaks. SQLAlchemy leverer aggregate_order_by hjælper til den samme syntaks, men den er kun tilvejebragt for Postgresql-dialekten.




  1. Fejl 1038 Uden for sorteringshukommelse, overvej at øge sorteringsbufferens størrelse

  2. Problem med Ruby on Rails installation - Hvordan bruger man WAMP MySQL installation?

  3. docker postgres med indledende data er ikke persisted over commits

  4. Brug en pl-sql-procedure eller markør for at vælge top 3-rangering