Ausgabe von CSUM() in teradata
Kann jemand bitte helfen Sie mir in unstanding unten csum-Funktion.
Was wird der Ausgang in jedem Fall.
csum(1,1),
csum(1,1) + emp_no
csum(1,emp_no)+emp_no
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann jemand bitte helfen Sie mir in unstanding unten csum-Funktion.
Was wird der Ausgang in jedem Fall.
csum(1,1),
csum(1,1) + emp_no
csum(1,emp_no)+emp_no
Du musst angemeldet sein, um einen Kommentar abzugeben.
CSUM ist eine alte veraltet Funktion von V2R3, vor über 15 Jahren. Es kann immer umgeschrieben werden mit neuen Standard-SQL-konforme syntax.
CSUM(1,1) wieder die gleichen wie ROW_NUMBER() OVER (ORDER BY 1), eine Folge, beginnend mit 1.
Aber Sie sollten niemals verwenden Sie es wie dass als REIHENFOLGE VON 1 in einer Fenster-Aggregat-Funktion ist nicht das gleiche wie die endgültige REIHENFOLGE von 1 eine AUSWÄHLEN, es bestellen alle Zeilen um den gleichen Wert 1. Teradata berechnet diese Funktionen parallel auf der Grundlage der Werte in der PARTITION BY und ORDER BY, das bedeutet, dass alle Zeilen mit der gleichen PARTITION wie/BESTELL-Daten verarbeitet werden, auf einem einzigen AMP, wenn es nur ein einzelner Wert einem AMP verarbeitet alle Zeilen, die sich in eine völlig schiefe Verteilung.
Anstelle von ORDER BY-1, sollten Sie eine Spalte, die ist mehr oder weniger einzigartig sind, im besten Fall.
csum(1,emp_no)+emp_no ist wahrscheinlich mit einer anderen SELECT -, um den aktuellen maximalen Wert in einer Spalte, und fügen Sie das neue sequenzielle Werte, also die Erstellung Ihrer eigenen gap-weniger Sequenznummern.
Dies ist der beste Weg, es zu tun: