The use of analytic functions, also known as windowing functions, is often overlooked even though they’ve been around since Oracle 8i. Perhaps because the primary documentation for these functions is found in the Oracle Database Data Warehousing Guide ( http://www.oracle.com/technetwork/indexes/documentation/index.html ), they are often thought useful only in data warehousing SQL. In the previous chapter, we examined how advanced grouping techniques can be used to accomplish so much that you may be wondering why you need to bother with analytic functions. Well, just like really good carpenters have numerous tools in their toolbox, so should we make sure our developer toolbox is filled with many different tools to help us write good SQL. If we limit ourselves to only a couple tools, we're bound to use constructs every now and then that are less performance friendly than others.