Вы разделяете и заказываете Member_Id
.Хотя это разрешено, это неортодоксально, и включение столбца в order by
ничего не делает - разве что упорядочивает немного медленнее и, возможно, в некоторых случаях препятствует использованию индекса.
Если вы хотите самую последнюю строку, тогда:
select dt.*
from (select dt.*,
row_number() over (partition by Location_Number, Member_Id order by Picked_Date desc) as seqnum
from dummytable dt
) dt
where seqnum = 1;
Если вам все еще нужен row#
, это действительно количество.Итак, это альтернатива:
select dt.*
from (select dt.*,
count(*) over (partition by Location_Number, Member_Id) as cnt,
row_number() over (partition by Location_Number, Member_Id order by Picked_Date desc) as seqnum
from dummytable dt
) dt
where seqnum = cnt;