【PostgreSQL】Select文に関する問題集 〜Part1〜

PostgreSQL

PostgreSQLのSelect文の操作を学ぶための問題を10問作成しました。

よかったら挑戦してみてください!サンプルデータもちゃんと用意してます!

前提となるサンプルデータはこちら

employeesテーブル

+----+------------+-----------+-------+
| id | first_name | last_name | salary |
+----+------------+-----------+-------+
|  1 | John       | Doe       |  5000 |
|  2 | Jane       | Smith     |  6000 |
|  3 | Michael    | Johnson   |  4500 |
|  4 | Robert     | Williams  |  6500 |
|  5 | Maria      | Jones     |  3500 |
+----+------------+-----------+-------+

customersテーブル

+----+-------+---------+
| id | name  | city    |
+----+-------+---------+
|  1 | Alice | New York |
|  2 | Bob   | London  |
|  3 | Eve   | Paris   |
|  4 | Eve   | New York |
+----+-------+---------+

ordersテーブル

+----+-------------+-------------+
| id | customer_id | total_price |
+----+-------------+-------------+
|  1 |           1 |       100.00|
|  2 |           2 |       200.00|
|  3 |           3 |       300.00|
|  4 |           4 |       400.00|
|  5 |           1 |       500.00|
+----+-------------+-------------+

productsテーブル

+----+---------+---------+-------+
| id | name    | category | price |
+----+---------+---------+-------+
|  1 | Shirt   | Clothes  |  20.00|
|  2 | Jeans   | Clothes  |  30.00|
|  3 | Jacket  | Clothes  |  40.00|
|  4 | T-Shirt | Clothes  |  10.00|
+----+---------+---------+-------+

上記データを踏まえたSQL練習問題 10問

以下にSQLの練習問題を5問用意します。

  1. customersテーブルから、cityが’New York’である顧客のidとnameを選択し、nameの降順で並べ替えるSQL文を作成してください
  2. ordersテーブルから、customer_idが2のすべての注文のidとtotal_priceを選択し、total_priceの昇順で並べ替えるSQL文を作成してください
  3. productsテーブルから、categoryが’Clothes’である商品のうち、priceが最も安いもののidとnameを選択するSQL文を作成してください
  4. ordersテーブルから、 total_priceが平均値以上のすべての注文のid、customer_id、total_priceを選択し、total_priceの降順で並べ替えるSQL文を作成してください
  5. productsテーブルから、categoryが’Clothes’である商品のうち、priceが最も高いもののname、category、priceを選択し、nameの昇順で並べ替えるSQL文を作成してください
  6. employeesテーブルから、salaryが平均値以上のすべての従業員のfirst_name、last_name、salaryを選択し、last_nameの昇順、salaryの降順で並べ替えるSQL文を作成してください
  7. customersテーブルから、cityが’New York’ または ‘Paris’である顧客のid, name, cityを選択し、cityの昇順、nameの降順で並べ替えるSQL文を作成してください
  8. productsテーブルから、priceが30以上である商品のうち、nameに’Shirt’を含むもののname、category、priceを選択し、priceの昇順で並べ替えるSQL文を作成してください
  9. ordersテーブルから、customer_idが1または3のすべての注文のid、customer_id、total_priceを選択し、customer_idの昇順、total_priceの降順で並べ替えるSQL文を作成してください
  10. employeesテーブルから、last_nameが’Doe’または’Jones’であるすべての従業員のid、first_name、last_nameを選択し、last_nameの降順、first_nameの昇順で並べ替えるSQL文を作成してください

1問目の答え

SELECT id,name FROM customers
WHERE city = 'New York'
ORDER BY name DESC;

2問目の答え

SELECT id,total_price FROM orders
WHERE customer_id = 2
ORDER BY total_price ASC;

3問目の答え

SELECT id,name FROM products
WHERE category = 'Clothes'
ORDER BY price ASC 
LIMIT 1;

4問目の答え

SELECT id,customer_id,total_price FROM orders
WHERE total_price >= (SELECT AVG(total_price) FROM orders)
ORDER BY total_price DESC;

5問目の答え

SELECT name,category,price FROM products
WHERE category = 'Clothes'
ORDER BY price DESC, name ASC
LIMIT 1;

6問目の答え

SELECT first_name, last_name, salary FROM employees
WHERE salary >= (SELECT AVG(salary) FROM employees)
ORDER BY last_name ASC, salary DESC;

7問目の答え

SELECT id,name,city FROM customers
WHERE city = 'New York' OR city = 'Paris'
ORDER BY city ASC,name DESC;

8問目の答え

SELECT name,category,price FROM products
WHERE price >= 30 and name like '%Shirt%'
ORDER BY price ASC;

9問目の答え

SELECT id,customer_id,total_price FROM orders
WHERE customer_id = 1 or customer_id = 3
ORDER BY customer_id ASC, total_price DESC;

10問目の答え

SELECT id,first_name,last_name FROM employees
WHERE last_name = 'Doe' OR last_name = 'Jones'
ORDER BY last_name DESC,first_name ASC;
タイトルとURLをコピーしました