Cette requête va renvoient des status_id uniques, mais seulement si la combinaison de ces status_id et de chacun de ces autres champs est également unique. Vous pouvez sélectionner les status_id uniques, mais vous ne pouvez pas renvoyer toutes les valeurs des autres champs s'il existe plusieurs combinaisons pour chaque status_id.
[modifier]
Si vous souhaitez uniquement le premier enregistrement pour chaque statut :
select
status_id, schedule_id, cassay_id, time_of_day, days, notify_to_addresses, active
from
(select
row_number() over (partition by status_id order by 1) as number,
status_id, schedule_id, cassay_id, time_of_day, days, notify_to_addresses, active
FROM ordertest)
where
number = 1
Au lieu de row_number
, dense_rank
et rank
sont également utilisés pour différents types de numérotation, mais dans ce cas, vous voulez vraiment une seule ligne, et row_number suffira.
Je ne suis pas sûr de order by
est obligatoire. Sinon, vous pouvez le laisser de côté. Si c'est le cas, vous pouvez spécifier une valeur fictive ou spécifier un champ spécifique que vous souhaitez utiliser comme "première ligne". Par exemple, spécifiez order by schedule_id
pour renvoyer le schedule_id le plus bas pour chaque status_id.