Teaching SQL to a Room Full of Non-Programmers

At Shopify, every new hire in Research & Development gets an invitation to a 90-minute, hands-on data workshop. The department spans engineers, data scientists, UX designers, project managers, and other disciplines, so the audience's technical range is wide. The workshop splits into two tracks: an intermediate group for those with some SQL familiarity, and a beginner group for everyone else. Many in the beginner group have never seen a database, let alone written a query. The goal is simple: equip them to responsibly use data to make better decisions in their day-to-day work.

That's a tall order for 90 minutes. What follows are the instructional strategies we've found effective for making that session engaging and productive for true beginners.

Before Queries, Context

You can't responsibly query data without understanding where it came from. The first half-hour of our workshop is dedicated to the basics of data warehouse architecture, covering three questions:

  • Where does data originate?
  • How does it get into the warehouse?
  • What's the difference between raw and modelled data?

We also address data ethics head-on: don't query production systems, prefer modelled data, and respect privacy. Participants leave this section knowing how their datasets were prepared and what guardrails apply to their work.

Choose the Right Tool and the Right Table

Participants don't practice on toy data. They use real production data and the same tools they'll use on the job. Our workshop tool is Mode Analytics, chosen for its clean query interface, built-in chart builders, clear error messages, and searchable data previews.

The dataset choice matters as much as the tool. Pick something that's understandable in three sentences or less, or you'll burn the session explaining domain context. Our go-to example is the support tickets table. The domain is universally understood—a customer submits an issue, an agent handles it, a ticket closes. The table includes columns for created and solved timestamps, assigned agent, and linked customer, among others. This lets participants focus on query mechanics instead of deciphering business jargon.

Define Objectives, Then Frame Questions

Design your workshop backward from the questions you want participants to answer. At minimum, cover the core keywords: SELECT, FROM, WHERE, ORDER BY, and LIMIT. Beyond that, let your organization's needs guide you.

Our curriculum includes DISTINCT, JOIN, GROUP BY, and functions like COUNT, AVG, and SUM. We tie each technique to a realistic question—for instance, "How many tickets have we processed monthly for merchants with a Shopify Plus plan?" or "What was the average handling time of tickets in January 2020?"

Having one overarching goal question keeps the session focused. Using the tickets domain, our question might be, "How have wait times for customers with a premium plan changed over time?" A single query chain that builds toward answering that provides a sense of accomplishment. Exercises should start with the easiest question and progress toward that goal.

Start with Data Exploration

Every analysis begins with understanding the dataset's structure. Before drawing insights, participants should know which columns matter, the ranges of numerical or date fields, and what unique values exist in categorical columns. They also need to learn to filter out noise, such as test tickets created by developers.

The first query everyone runs is a basic SELECT * FROM {tickets_table}. It introduces the first keywords while showing the raw contents of the table. From there, participants learn to narrow their focus, selecting specific columns and using MIN, MAX, and DISTINCT to map out possible values.

Layer Complexity On Prior Queries

Beginners don't need to learn everything at once. You can reach complex queries by incrementally adding a single keyword or function to the previous query. Our exercise grows like this:

  1. How many tickets were created last month? — Introduces COUNT and WHERE.
  2. What's the daily count of tickets over that month? — Adds GROUP BY and a date function like DATE_TRUNC to roll timestamps up to days.
  3. How does that count vary by customer plan type? — Adds JOIN to bring in plan information and GROUP BY across multiple columns.

Each step changes the query in a small, digestible way, so no single concept overwhelms the learner. After step three, participants are already producing genuinely useful insights.

End with a Path Forward

Ninety minutes can only cover so much. We close by pointing participants toward free learning resources they can explore at their own pace. Understanding relational database management systems—concepts like tables, primary keys, and how SQL talks to those systems—is a good place to continue, and most topics build naturally on the foundations covered here. Learning SQL is a long game; the workshop is just the first query. Helping employees reach the point of self-serve data access pays off across disciplines, whether someone is a developer debugging an issue, a UX designer checking feature usage, or a technical writer spotting outdated documentation. When anyone on the team can troubleshoot, aggregate, and find trends, everyone's decisions get better.