lesson 3 of 4 · sql quality checks before the notebooksql quality checks before the notebooklesson 3 of 4 · sql quality checks before the notebooksql quality checks before the notebooklesson 3 of 4 · sql quality checks before the notebooksql quality checks before the notebooklesson 3 of 4 · sql quality checks before the notebooksql quality checks before the notebooklesson 3 of 4 · sql quality checks before the notebooksql quality checks before the notebooklesson 3 of 4 · sql quality checks before the notebooksql quality checks before the notebooklesson 3 of 4 · sql quality checks before the notebooksql quality checks before the notebooklesson 3 of 4 · sql quality checks before the notebooksql quality checks before the notebooklesson 3 of 4 · sql quality checks before the notebooksql quality checks before the notebooklesson 3 of 4 · sql quality checks before the notebooksql quality checks before the notebooklesson 3 of 4 · sql quality checks before the notebooksql quality checks before the notebook
Checkpoint
One last thing before we move on. pass this to mark the lesson done, or skip and keep moving. hop to the next when you're ready.
Checkpoint. Write quality_gate(db) running three checks — duplicates == 0, no NULL amounts, label rate strictly between 0 and 1 — and returning a list of failure strings (empty = pass). Print each failure, then the verdict. A gate that can't fail loudly isn't a gate.