Si j'ai une requête avec un J'aimerais Créez deux colonnes dans les résultats avec un booléen pour les première et les dernières lignes de la fenêtre. p> Row_Number () sur code> Comment puis-je obtenir une sortie pour totale des lignes dans cette fenêtre ou, la dernière ligne en tant que booléen?
3 Réponses :
Cela vous donne le nombre total:
ROW_NUMBER() OVER (.... ORDER BY ... DESC)
Vous pouvez utiliser DB FIDDLE Demo strong> P> Sortie: P> first_value code>: +----+----------+------------+----------+
| a | row_num | first_row | last_row |
+----+----------+------------+----------+
| 1 | 1 | 1 | 1 |
| 2 | 1 | 1 | 0 |
| 2 | 2 | 0 | 1 |
| 3 | 1 | 1 | 1 |
+----+----------+------------+----------+
Excellent merci. Comme l'utilisation de first_value code>.
Je ferais:
select
a,
row_number,
case ra = 1 then 1 else 0 end as first,
case rd = 1 then 1 else 0 end as last
from (
select
a,
row_number,
row_number() over(partition by a order by row_number) as ra,
row_number() over(partition by a order by row_number desc) as rd
from my_table
) x
order by a
Semble si évident quand vous le mettez comme ça! Acclamations.