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.