# FAQ: Window Functions - LEAD

This community-built FAQ covers the “LEAD” exercise from the lesson “Window Functions”.

Paths and Courses
This exercise can be found in the following Codecademy content:

## FAQs on the exercise LEAD

There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply () below.

If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.

## Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply () below!
You can also find further discussion and get answers to your questions over in Language Help.

Agree with a comment or answer? Like () to up-vote the contribution!

Need broader help or resources? Head to Language Help and Tips and Resources. If you are wanting feedback or inspiration for a project, check out Projects.

Looking for motivation to keep learning? Join our wider discussions in Community

Learn more about how to use this guide.

Found a bug? Report it online, or post in Bug Reporting

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

Given that you can use LEAD or LAG to calculate changes to weekly streams and changes to chart position, in what instances would you typically use one over the other?

For example the following provide the same results:

Example 1:
LEAD(streams_millions, 1) OVER (
PARTITION BY artist
ORDER BY week
) - streams_millions AS ‘streams_millions_change’

Example 2:
streams_millions - LAG(streams_millions, 1, streams_millions) OVER (
PARTITION BY artist
ORDER BY week
) AS ‘streams_millions_change’

I am a beginner using Windows functions. In what situations would you use LEAD and in what situations would you use LAG?

Thanks for your advice!

1 Like

My sense is that the function written with LEAD creates a value that anticipates the change over the upcoming week, and the function written with LAG creates a value that represents the change since last week. I think the LEAD change is kind of confusing and unhelpful.

1 Like

For LAG and LEAD concepts, I recommend not throwing in additional complexities, like switching the subtraction for chart position (where “reducing” from spot 2 to spot 1 is GOOD). It’s disheartening to try over and over, thinking you understood the concept, only to read the answer and realize that the only thing stopping it flagging yours as correct is where you place the subtraction.

1 Like

The way the LAG results are structured makes sense to me. Typically, in business, you review week-over-week, or month-over-month, or quarter-over-quarter, or year-over-year. In these kinds of reports you show (if using monthly numbers) your monthly results and the change from prior month (that’s month-over-month) or change from same month last year (that’s year-over-year). I don’t believe I’ve ever seen a report structured to show January’s results and then change from February on January’s line. The change from January to February would always be on February’s line. Because of this, I found the LEAD examples very confusing. It just isn’t the way most financial statements are structured.

I’m sure there are plenty of useful applications of LEAD, but I found this example difficult to get my head around.

I do want to say that I’ve really enjoyed using Codecademy.