Zum Beispiel habe ich die folgenden Tabellendefinitionen:
%Vor%Und ich möchte den größten Raum für jedes Haus auswählen.
Ich kam auf den folgenden Trick:
%Vor% Es tut, was ich brauche, ist aber hässlich, total unlesbar und scheint die Performance zu verletzen. Ich habe versucht, groupBy
bei der Abfrage zu verwenden, aber ich verstehe ein Kernkonzept falsch - ich kann die Typen nicht richtig finden.
Gibt es eine bessere Möglichkeit, eine solche Aggregatabfrage in Slick durchzuführen?
Erstens ist diese Art von Abfrage in reinem SQL nicht ganz einfach. Slick groupBy übersetzt am Ende in SQL GROUP BY, also brauchen wir eine SQL-Abfrage mit GROUP BY
Eine solche Abfrage könnte aussehen wie
%Vor%Dies kann jetzt in glatt
übersetzt werden %Vor%Ich hatte jedoch Probleme mit aggregierten Abfragen, die in anderen Abfragen in der aktuellen Slick-Version verwendet wurden.
Aber die Abfrage kann ohne eine GROUP BY mit EXISTS
geschrieben werden %Vor%Das kann wieder in glatt übersetzt werden
%Vor%Eine andere Option wäre wahrscheinlich die Verwendung von Fensterfunktionen , aber ich kann nicht wirklich helfen Sie mit denen, und ich glaube nicht, kann glatt mit ihnen arbeiten.
(Beachten Sie, dass ich keinen Scala-Compiler zur Hand habe, daher könnte es Fehler im Code geben)
Tags und Links scala slick scala-2.10