hilft können Sie eine analytical function verwenden, wenn Sie nicht wollen Mach eine Gruppe mit oder mach mit. Sie können dies wahrscheinlich ein wenig konsolidieren, wenn Sie möchten, aber ich finde, dass es durch das Aufteilen von with
es offensichtlicher macht, was vor sich geht.
with max_date_query as (
select key, date, max(date) over (partition by key) max_date
from mytable
)
select key, date, case when date = max_date then 1 else 0 end flag
from max_date_query
Es gibt noch andere Variationen zum selben Thema, wo Sie das Fenster von date desc
bestellen und benutzen row_number()
statt max()
die Flagge zu bestimmen. Ich könnte mir vorstellen, dass das, was ich gezeigt habe, besser ist, aber nicht sicher, wie viel es wirklich einen Unterschied machen wird. Möglicherweise müssen Sie diese Methode verwenden, wenn Sie Fälle haben, in denen Sie doppelte Höchstdaten haben und wirklich nur eine auswählen müssen.
Können Sie uns Ihren aktuellen Abfrageversuch zeigen? – jarlh