parent
03d39ad188
commit
d917257a2b
2 changed files with 191 additions and 0 deletions
@ -0,0 +1,111 @@ |
||||
--- |
||||
title: Expensive Books |
||||
description: Practice creating a report with multiple tables |
||||
order: 100 |
||||
type: challenge |
||||
setup: | |
||||
```sql |
||||
CREATE TABLE fiction_book ( |
||||
id INT PRIMARY KEY, |
||||
title VARCHAR(255), |
||||
author VARCHAR(255), |
||||
price DECIMAL(10, 2) |
||||
); |
||||
|
||||
CREATE TABLE non_fiction_book ( |
||||
id INT PRIMARY KEY, |
||||
title VARCHAR(255), |
||||
author VARCHAR(255), |
||||
price DECIMAL(10, 2) |
||||
); |
||||
|
||||
INSERT INTO fiction_book (id, title, author, price) |
||||
VALUES |
||||
(1, 'The Great Gatsby', 'F. Scott Fitzgerald', 24.99), |
||||
(2, '1984', 'George Orwell', 19.99), |
||||
(3, 'Pride and Prejudice', 'Jane Austen', 15.99), |
||||
(4, 'The Hobbit', 'J.R.R. Tolkien', 29.99), |
||||
(5, 'The Doors of Perception', 'Aldous Huxley', 12.99); |
||||
|
||||
INSERT INTO non_fiction_book (id, title, author, price) |
||||
VALUES |
||||
(1, 'A Brief History of Time', 'Stephen Hawking', 29.99), |
||||
(2, 'The Art of War', 'Sun Tzu', 19.99), |
||||
(3, 'Sapiens', 'Yuval Noah Harari', 24.99), |
||||
(4, 'Pride and Prejudice: A Study Guide', 'John Smith', 12.99), |
||||
(5, 'The Doors of Perception', 'Aldous Huxley', 12.99); |
||||
|
||||
CREATE TABLE summer_read ( |
||||
id INT PRIMARY KEY, |
||||
title VARCHAR(255), |
||||
author VARCHAR(255), |
||||
price DECIMAL(10, 2) |
||||
); |
||||
|
||||
INSERT INTO summer_read (id, title, author, price) |
||||
VALUES |
||||
(1, 'The Great Gatsby', 'F. Scott Fitzgerald', 24.99), |
||||
(2, 'Sapiens', 'Yuval Noah Harari', 24.99), |
||||
(3, 'The Art of War', 'Sun Tzu', 19.99); |
||||
``` |
||||
--- |
||||
|
||||
Given the following three tables with the given data: |
||||
|
||||
> `fiction_book` table has the following data: |
||||
|
||||
| id | title | author | price | |
||||
| --- | ----------------------- | ------------------- | ----- | |
||||
| 1 | The Great Gatsby | F. Scott Fitzgerald | 24.99 | |
||||
| 2 | 1984 | George Orwell | 19.99 | |
||||
| 3 | Pride and Prejudice | Jane Austen | 15.99 | |
||||
| 4 | The Hobbit | J.R.R. Tolkien | 29.99 | |
||||
| 5 | The Doors of Perception | Aldous Huxley | 12.99 | |
||||
|
||||
> `non_fiction_book` table looks like this: |
||||
|
||||
| id | title | author | price | |
||||
| --- | ---------------------------------- | ----------------- | ----- | |
||||
| 1 | A Brief History of Time | Stephen Hawking | 29.99 | |
||||
| 2 | The Art of War | Sun Tzu | 19.99 | |
||||
| 3 | Sapiens | Yuval Noah Harari | 24.99 | |
||||
| 4 | Pride and Prejudice: A Study Guide | John Smith | 12.99 | |
||||
| 5 | The Doors of Perception | Aldous Huxley | 12.99 | |
||||
|
||||
> `summer_read` table has the following data: |
||||
|
||||
| id | title | author | price | |
||||
| --- | ---------------- | ------------------- | ----- | |
||||
| 1 | The Great Gatsby | F. Scott Fitzgerald | 24.99 | |
||||
| 2 | Sapiens | Yuval Noah Harari | 24.99 | |
||||
| 3 | The Art of War | Sun Tzu | 19.99 | |
||||
|
||||
Write a query to find the books in all three tables that cost more than $20 along with their section i.e. `Fiction`, `Non-Fiction`, and `Summer Read`. |
||||
|
||||
> It's okay if the books are repeated in the result set. Important thing is to show the section and the book details. |
||||
|
||||
## Expected Results |
||||
|
||||
Your output should look like this: |
||||
|
||||
| id | title | price | section | |
||||
| --- | ----------------------- | ----- | ----------- | |
||||
| 4 | The Hobbit | 29.99 | Fiction | |
||||
| 1 | The Great Gatsby | 24.99 | Fiction | |
||||
| 1 | A Brief History of Time | 29.99 | Non-Fiction | |
||||
| 1 | The Great Gatsby | 24.99 | Summer Read | |
||||
| 2 | Sapiens | 24.99 | Summer Read | |
||||
| 3 | Sapiens | 24.99 | Non-Fiction | |
||||
|
||||
## Solution |
||||
|
||||
```sql |
||||
SELECT id, title, price, 'Fiction' as section |
||||
FROM fiction_book WHERE price > 20 |
||||
UNION |
||||
SELECT id, title, price, 'Non-Fiction' as section |
||||
FROM non_fiction_book WHERE price > 20 |
||||
UNION |
||||
SELECT id, title, price, 'Summer Read' as section |
||||
FROM summer_read WHERE price > 20 |
||||
``` |
@ -0,0 +1,80 @@ |
||||
--- |
||||
title: Multi-Section Authors |
||||
description: Practice creating a report with multiple tables |
||||
order: 100 |
||||
type: challenge |
||||
setup: | |
||||
```sql |
||||
CREATE TABLE fiction_book ( |
||||
id INT PRIMARY KEY, |
||||
title VARCHAR(255), |
||||
author VARCHAR(255), |
||||
price DECIMAL(10, 2) |
||||
); |
||||
|
||||
CREATE TABLE non_fiction_book ( |
||||
id INT PRIMARY KEY, |
||||
title VARCHAR(255), |
||||
author VARCHAR(255), |
||||
price DECIMAL(10, 2) |
||||
); |
||||
|
||||
INSERT INTO fiction_book (id, title, author, price) |
||||
VALUES |
||||
(1, 'The Great Gatsby', 'F. Scott Fitzgerald', 24.99), |
||||
(2, '1984', 'George Orwell', 19.99), |
||||
(3, 'Pride and Prejudice', 'Jane Austen', 15.99), |
||||
(4, 'The Hobbit', 'J.R.R. Tolkien', 29.99), |
||||
(5, 'The Doors of Perception', 'Aldous Huxley', 12.99); |
||||
|
||||
INSERT INTO non_fiction_book (id, title, author, price) |
||||
VALUES |
||||
(1, 'A Brief History of Time', 'Stephen Hawking', 29.99), |
||||
(2, 'The Art of War', 'Sun Tzu', 19.99), |
||||
(3, 'Sapiens', 'Yuval Noah Harari', 24.99), |
||||
(4, 'Pride and Prejudice: A Study Guide', 'John Smith', 12.99), |
||||
(5, 'The Doors of Perception', 'Aldous Huxley', 12.99); |
||||
``` |
||||
--- |
||||
|
||||
Given the following two tables `fiction_book` and `non_fiction_book` with the following data: |
||||
|
||||
> `fiction_book` table has the following data |
||||
|
||||
| id | title | author | price | |
||||
| --- | ----------------------- | ------------------- | ----- | |
||||
| 1 | The Great Gatsby | F. Scott Fitzgerald | 24.99 | |
||||
| 2 | 1984 | George Orwell | 19.99 | |
||||
| 3 | Pride and Prejudice | Jane Austen | 15.99 | |
||||
| 4 | The Hobbit | J.R.R. Tolkien | 29.99 | |
||||
| 5 | The Doors of Perception | Aldous Huxley | 12.99 | |
||||
|
||||
> `non_fiction_book` table looks like this: |
||||
|
||||
| id | title | author | price | |
||||
| --- | ---------------------------------- | ----------------- | ----- | |
||||
| 1 | A Brief History of Time | Stephen Hawking | 29.99 | |
||||
| 2 | The Art of War | Sun Tzu | 19.99 | |
||||
| 3 | Sapiens | Yuval Noah Harari | 24.99 | |
||||
| 4 | Pride and Prejudice: A Study Guide | John Smith | 12.99 | |
||||
| 5 | The Doors of Perception | Aldous Huxley | 12.99 | |
||||
|
||||
Write a query to find the authors who have written books in both `fiction_book` and `non_fiction_book` tables. |
||||
|
||||
## Expected Results |
||||
|
||||
Your output should only contain the author names: |
||||
|
||||
| author | |
||||
| ------------------- | |
||||
| Aldous Huxley | |
||||
|
||||
## Solution |
||||
|
||||
```sql |
||||
SELECT author |
||||
FROM fiction_book |
||||
INTERSECT |
||||
SELECT author |
||||
FROM non_fiction_book; |
||||
``` |
Loading…
Reference in new issue