Mysql
 sql >> Baza danych >  >> RDS >> Mysql

sqlalchemy func.group_concat i losowa kolejność danych

Wyniki SQL są (wielo)zestawami i jako takie nie mają kolejności, chyba że wyraźnie zdefiniujesz jeden. Dotyczy to grup wierszy utworzonych przez GROUP BY również; nie ma kolejności w grupach, więc agregaty otrzymują wartości w dowolnej kolejności, w jakiej powstaje bieżące zapytanie w zależności od planu, układu fizycznego, harmonogramu itp. Rozwiązaniem jest wyraźne zdefiniowanie zamów :

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

Używa funkcji operatora ogólnego aby utworzyć wymaganą składnię SQL. SQLAlchemy udostępnia aggregate_order_by pomocnik dla tej samej składni, ale jest dostępny tylko dla dialektu Postgresql.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Usuwanie zduplikowanych danych z tabeli za pomocą MySQL

  2. Zaktualizuj colPos za pomocą typo3 extension flux 9.0.1

  3. Znajdowanie zależności funkcjonalnej

  4. Jak uciec % w Knex, gdzie jak zapytanie?

  5. Zapytanie SQL do pogrupowania według części miesiąca znacznika czasu