Tout en recherchant un problème précédent de la mienne, j'ai utilisé la réponse à this post. Ma requête ressemble à ceci:Teradata partition par col ordre par 0
sel
*
from (
sel distinct
COL,
FIELD
from TBL
where COL in (
-- subquery
)
and FIELD is not NULL
) q
qualify row_number() over (partition by COL order by 0) between 1 and 750
;
Il fait ce que je veux qu'il fasse, mais je ne le comprends pas complètement. Le problème est dans le bit partition by COL order by 0
. Je comprends que partition by
divise les données en sous-groupes basés sur les valeurs dans le champ désigné et je comprends que order by
, lorsqu'il est suivi par un nom de champ va trier les résultats de chaque partition par ce champ, mais je ne comprends pas comment il fonctionne avec un nombre entier. Mon hypothèse est que mettre une constante à cet endroit produira les mêmes résultats. Cette hypothèse est-elle correcte? Est-ce que 0
a une signification spéciale ici?
Il s'agit simplement d'une valeur fictive donnée pour trier les enregistrements dans l'ordre naturel dans lequel ils sont récupérés et attribuer la valeur du numéro de ligne en conséquence. –
Ne comprenez-vous pas le résultat de la commande par une constante, ou ce qui se passe réellement dans l'implémentation, ex. comment les cravates sont brisées? –
Je ne comprends pas le résultat de la commande par une constante et je ne suis pas sûr de savoir de quels liens vous parlez. –