The Life Starter
0 of 6 complete0%
Course Library · Lesson 5 of 6
Digital · Guided lesson

Compare a row with its predecessor

About 16 minutes · 4 reading + 12 practice and checks
Time includes reading, practice, and questions. Extra videos or further study are optional.
See this course’s project requirements

A reproducible SQLite attendance analysis with per-session rank, running totals and prior-period changes that retains every original row.

Keep your working files in your own notebook or software. Save a private description, checklist, and work link in My Proof.

What to include

  • A grouped-versus-windowed result choice.
  • An independent session sequence with deterministic ordering.
  • A week rank record 3,1,1 with declared tie behavior.
  • Running-total rows A 8,20,32 and B 6,15.
  • A row-comparison record with honest missing-baseline handling.
  • A reproducible window-analysis packet.

Review and revise

Use these criteria to check your work and choose what to improve.

  • The implementation or declared simulation follows the supplied contract and retains inspectable original inputs.
  • Normal, boundary and rejected cases are recorded with expected versus observed results.
  • The changed case has a correct explanation and does not rely on hidden state.
  • The project includes source, outputs, instructions and honest tool, privacy and verification limits.
Open the full course project
Want more background?
Before you begin

The idea in everyday life

A attendees 8,12,12 have previous NULL,8,12 and changes unavailable,+4,0.

The idea

LAG returns a value from an earlier ordered row; the first row has no predecessor and here gives NULL. NULL means unavailable, not a measured zero.

Follow along

Compare a row with its predecessor — original worked practice

LAG returns a value from an earlier ordered row; the first row has no predecessor and here gives NULL. NULL means unavailable, not a measured zero.

A attendees 8,12,12 have previous NULL,8,12 and changes unavailable,+4,0.

  1. 1. Step 1

    Read LAG(attendees)in the query.

    You should see: It uses the same session partition and week order.

    This keeps the rule and its observable result together.

  2. 2. Step 2

    Record first-row NULL.

    You should see: There is no earlier week in the fixture.

    This keeps the rule and its observable result together.

  3. 3. Step 3

    Subtract previous from current for weeks 2 and 3.

    You should see: Changes are 4 and 0.

    This keeps the rule and its observable result together.

  4. 4. Step 4

    Label the first difference unavailable instead of zero.

    You should see: A row-comparison record with honest missing-baseline handling.

    This keeps the rule and its observable result together.

Now change one thing

A week 3 changes from 12 to 15 while week 2 stays 12. Enter week 3 increase.

Your work

What to finish

A row-comparison record with honest missing-baseline handling.

Common mistake

Watch for this

Replacing the first missing predecessor with zero and implying a zero-attendance observation existed.

How can I tell I understand it?

Explain and demonstrate the required distinction: LAG returns a value from an earlier ordered row; the first row has no predecessor and here gives NULL. NULL means unavailable, not a measured zero. Show a changed input and the expected result without weakening this contract.

Try 3 questions

Quick knowledge check

Answer all 3 questions. Get at least 2 right and the lesson completes automatically.

Not yet passed

You’ll get an explanation for each answer. Signed in? Your results save to your account.

1What does first-row NULL mean here?
2What is the baseline A week 2 change?
3Why not replace first NULL with 0 without a comment?
0 of 3 answeredApply the lesson to a short question, then review the explanation.
5
Finish this lesson

Pass the check. We’ll save the progress.

Answer all 3 questions above and get at least 2 right. You can review the explanations and try again.

Go to the knowledge check
Tools, templates, and lesson sources

Tools and templates

Tools open in a new tab so you can keep your place here.

Sources and further reading

Explore the references behind this lesson.

www.sqlite.org — window functions.html
Source & access notes · checked 2026-10-01

Relevant documented module/API behavior inspected during expansion authoring; actual execution evidence is recorded separately. No grant eligibility is established.

Access: Official page retrieved with the web reader on 2026-10-01. Documentation reading does not certify execution in every native tool or browser.

Reuse: Original local practice files, fictional data, worked examples and questions. Concepts paraphrased and linked; source exercises are not copied.

Report a problem with this lesson

Tell us what went wrong. Please leave out personal information and private project contents.

No sign-in needed.