Student-Level vs. Course-Level vs. Section-Level vs. Program-Level vs. Payment-Level Data
Overview
Education data is organized at different levels depending on what you are analyzing. Understanding these levels helps you choose the correct table and write accurate SQL queries.
Student-level data focuses on individual students. The students table stores details such as name, demographics, program, and status. Each row represents one student.
Course-level data focuses on academic offerings. The courses table includes information such as course name, department, and credit hours. Each row represents one course.
Section-level data represents how courses are delivered. The sections table captures specific offerings of a course in a given term, including delivery mode, capacity, and campus. Each row represents a course offering.
Program-level data focuses on academic programs. The programs table includes program name, credential type, and duration. Each row represents one program.
Payment-level data captures financial transactions. The tuition_payments table stores billing and payment information such as amount billed, amount paid, and payment status. Each row represents a payment record.
These levels are connected. Students enroll in programs, register in course sections, complete courses, and make tuition payments.
The Basic Pattern
SELECT column_name, COUNT(*) AS total
FROM table_name
GROUP BY column_name;
Examples
Example 1 β Count Students by Status (Student-Level)
Example 2 β Count Courses by Level (Course-Level)
Example 3 β Count Payments by Status (Payment-Level)
Practice Tasks (Your Turn!)
Task 1
Count the number of sections by delivery mode.
Task 2
Count the number of programs by credential type.
Task 3
Count the number of students by city.
Click a task from Practice Tasks to begin.

