Basic SQL provides row-level visibility, and aggregate functions allow us to analyze data in groups so that each row corresponds to one specific group according to group by expressions (more details about aggregate functions provided in the next chapter, “Aggregate Functions”).
Analytic functions introduce window-level visibility. Window defines the subset of rows used to apply a function for each input row, and its definition is the same for all rows and is specified in the analytic clause of the function. Analytic functions are evaluated after all operations like joins, where, group by, having ...