Archive for December 1st, 2009
SQL Server: Selecting records holding group-wise maximum (with ties)
Comments enabled. I *really* need your comment
A feedback on the yesterday's article on selecting records holding group-wise maximums in SQL Server.
Gonçalo asks:
Regarding the post I mention on the subject, wouldn't it be easier to obtain the result you're after using the SQL Server specific
SELECT TOP x WITH TIES
?
This clause (which is indeed specific to SQL Server) returns ties. TOP x WITH TIES
means return TOP x
records, plus all records holding the same values of the ORDER BY
expressions as the last (x
'th) record returned by the TOP
.
With a little effort this can be used for one of the queries I wrote about yesterday, namely the one that returns all records holding MIN(orderer)
within each group.
However, the efficiency of this solution varies greatly depending on the cardinality of both ordering and grouping columns.
Let's create a sample table:
Read the rest of this entry »