Group By + alle Felder

by admin 5. September 2007 03:40

Meist wollen ja immer die selben Probleme gelöst werden. Mein Standard für ein SELECT auf alle Felder einer Tabelle, abhängig von einer Aggregatfunktionen (min, max, avg. etc.) einer zweiten sieht so aus:

CropperCapture[10]

Ich möchte gerne für alle Requests, das jeweils höchste Gebot (Bid) haben. Das ganze funktioniert, aber ich Suche nach einem einfacheren Weg.

Das gleiche nochmal als subselect, wobei wenn ich mich recht erinnere kann z.B mysql keine subselects. Und ich möchte möglichst Datenbankhersteller agnostisch bleiben.

CropperCapture[11]

Hier nochmal der Execution Plan für beide Abfragen, wobei die Indizies noch nicht optimiert sind. Auf den ersten Blick verwirrend, ist das umschliessende select für die erste Abfrage. Bleibt die Ergebnismenge aber klein, ist das zu vernachlässigen. Und "premature optimization" ist eh der Feind aller Entwickler :-)

CropperCapture[12]

Comments are closed

About Oliver

shades-of-orange.com code blog logo I build web applications using ASP.NET and have a passion for javascript. Enjoy MVC 4 and Orchard CMS, and I do TDD whenever I can. I like clean code. Love to spend time with my wife and our children. My profile on Stack Exchange, a network of free, community-driven Q&A sites

About Anton

shades-of-orange.com code blog logo I'm a software developer at teamaton. I code in C# and work with MVC, Orchard, SpecFlow, Coypu and NHibernate. I enjoy beach volleyball, board games and Coke.