Skip to content
Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions exercises/concept/intro-select/create_fixture.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
DROP TABLE IF EXISTS weather_readings;
CREATE TABLE weather_readings (
date TEXT NOT NULL,
location TEXT NOT NULL,
temperature REAL NOT NULL,
humidity INTEGER NOT NULL
);

.mode csv
.import ./data.csv weather_readings
6 changes: 6 additions & 0 deletions exercises/concept/intro-select/data.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
"2025-10-22","Portland",53.1,72
"2025-10-22","Seattle",56.2,66
"2025-10-22","Boise",60.4,55
"2025-10-23","Portland",54.6,70
"2025-10-23","Seattle",57.8,68
"2025-10-23","Boise",62.0,58
42 changes: 42 additions & 0 deletions exercises/concept/intro-select/intro-select.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
.print
.print "All data"
.print "========"
.print
SELECT * FROM weather_readings;

.print
.print "Location and temperature only"
.print "============================="
.print
SELECT location, temperature FROM weather_readings;

.print
.print "Greeting"
.print "========"
.print
-- This one will fail on purpose
SELECT 'Hello, world.' AS say_hi;

.print
.print "Data for Seattle"
.print "================"
.print
SELECT * FROM weather_readings WHERE location = 'Seattle';

.print
.print "Data with humidity constraints"
.print "=============================="
.print
SELECT * FROM weather_readings WHERE humidity BETWEEN 60 AND 70;

.print
.print "Locations"
.print "========="
.print
SELECT location FROM weather_readings;

.print
.print "Unique locations"
.print "================"
.print
SELECT DISTINCT location FROM weather_readings;
41 changes: 41 additions & 0 deletions exercises/concept/intro-select/intro-select_exemplar.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
.print
.print "All data"
.print "========"
.print
SELECT * FROM weather_readings;

.print
.print "Location and temperature only"
.print "============================="
.print
SELECT location, temperature FROM weather_readings;

.print
.print "Greeting"
.print "========"
.print
SELECT 'Hello, world.';

.print
.print "Data for Seattle"
.print "================"
.print
SELECT * FROM weather_readings WHERE location = 'Seattle';

.print
.print "Data with humidity constraints"
.print "=============================="
.print
SELECT * FROM weather_readings WHERE humidity BETWEEN 60 AND 70;

.print
.print "Locations"
.print "========="
.print
SELECT location FROM weather_readings;

.print
.print "Unique locations"
.print "================"
.print
SELECT DISTINCT location FROM weather_readings;
16 changes: 16 additions & 0 deletions exercises/concept/intro-select/intro-select_test.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
-- Create database:
.read ./create_fixture.sql

.mode columns

-- Generate expected output
.output expected_output.txt
.read ./intro-select_exemplar.sql

-- Run user solution
.output user_output.txt
.read ./intro-select.sql

-- Compare expected vs actual
.shell diff expected_output.txt user_output.txt