wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

SQL Games Modul 2

Total questions: 14

Worksheet time: 19mins

Name
Class
Date
1.

Urutkan potongan query berikut agar menghasilkan daftar nama pelanggan dan total jumlah pesanan

a)

SELECT c.customer_name, COUNT(o.order_id) AS total_orders

b)

FROM Customers c

c)

JOIN Orders o ON c.customer_id = o.customer_id

d)

GROUP BY c.customer_name

e)

ORDER BY total_orders DESC;

1)
2)
3)
4)
5)
2.

Urutkan potongan query berikut untuk mendapatkan daftar produk yang memiliki harga lebih tinggi daripada harga rata-rata semua produk

a)

SELECT product_name, price

b)

FROM Products

c)

WHERE price >

d)

(SELECT AVG(price) FROM Products)

1)
2)
3)
4)
3.

Urutkan query berikut untuk mendapatkan total penjualan per kategori menggunakan CTE!

a)

WITH CategorySales AS (

b)

SELECT category_id, SUM(price * quantity) AS total_sales

c)

FROM Products p JOIN Orders o ON p.product_id = o.product_id

d)

GROUP BY category_id

e)

)

SELECT * FROM CategorySales;

1)
2)
3)
4)
5)
4.

Urutkan query berikut untuk mendapatkan daftar karyawan dengan gaji mereka, serta peringkat gaji mereka dalam perusahaan

a)

SELECT employee_name, salary,

b)

DENSE_RANK()

c)

OVER

d)

(ORDER BY salary DESC) AS salary_rank

e)

FROM Employees;

1)
2)
3)
4)
5)
5.

Urutkan query berikut untuk menghitung total pendapatan per bulan dari tabel transaksi

a)

SELECT MONTH(transaction_date) AS month,

b)

SUM(amount) AS total_revenue

c)

FROM Transactions

d)

GROUP BY MONTH(transaction_date)

e)

ORDER BY month;

1)
2)
3)
4)
5)
6.

Tampilkan daftar pelanggan yang telah melakukan pemesanan dan total jumlah pesanan:

SELECT c.customer_name, COUNT(o.order_id) AS total_orders

FROM Customers c

(a)   Orders o ON c.customer_id = o.customer_id

GROUP BY c.customer_name

ORDER BY total_orders DESC;

7.

Tampilkan daftar produk yang memiliki harga lebih tinggi dibandingkan harga rata-rata semua produk.

SELECT product_name, price

FROM Products

WHERE price > ( (a)   (price) FROM Products);

8.

Hitung Gunakan CTE untuk menghitung total penjualan per kategori.

(a)   CategorySales AS (

SELECT category_id, SUM(price * quantity) AS total_sales

FROM Products p JOIN Orders o ON p.product_id = o.product_id

GROUP BY category_id

)

SELECT * FROM CategorySales;

9.

Tampilkan daftar karyawan dengan gaji dan peringkat gaji mereka dalam perusahaan, tanpa ada peringkat yang terlewat.

SELECT employee_name, salary,

(a)   () OVER (ORDER BY salary DESC) AS salary_rank

FROM Employees;

10.

Hitung total pendapatan per bulan dari tabel transaksi ( atas dan bawah jawaban sama, 1 word saja)

SELECT ______ (transaction_date) AS month,

SUM(amount) AS total_revenue

FROM Transactions

GROUP BY ______ (transaction_date)

ORDER BY month;



(a)  

11.

Cari karyawan dengan gaji tertinggi di setiap departemen beserta nama departemennya. Tabel yang digunakan: employees(emp_no, first_name, last_name) dept_emp(emp_no, dept_no) departments(dept_no, dept_name) salaries(emp_no, salary, from_date, to_date)

SELECT e.first_name, e.last_name, d.dept_name, s.salary

FROM (SELECT emp_no, salary,

RANK() OVER (PARTITION BY ​ (a)   ORDER BY salary DESC) AS rnk

FROM salaries WHERE to_date = '9999-01-01') s

JOIN employees e ON e.emp_no = ​ (b)  

JOIN dept_emp de ON e.emp_no = ​ (c)  

JOIN departments d ON de.dept_no = ​ (d)  

WHERE rnk = ​ (e)   ;

Choose from the below words
dept_no
1
s.emp_no
de.emp_no
d.dept_no
dept_name, 2, s.emp_no, de.emp_no, d.dept_name
dept_no, 3, s.emp_no, de.dept_no, d.first_name
dept_no, 1, s.salary, de.emp_no, d.dept_no
12.

Cari pelanggan yang telah menyewa lebih dari 30 kali. Tabel yang digunakan: rental(rental_id, customer_id, rental_date) customer(customer_id, first_name, last_name)

SELECT c.first_name, c.last_name, COUNT(r.​ (a)   ) AS total_rentals

FROM customer c

JOIN rental r ON c.customer_id = r.​ (b)  

​ (c)   BY ​ (d)   , c.first_name, c.last_name

HAVING total_rentals > ​ (e)   ;

Choose from the below words
rental_id
customer_id
30
c.customer_id
GROUP
rental_date, customer_id, 10, c.first_name, ORDER
customer_id, rental_date, 50, r.rental_id, SORT
first_name, last_name, 20, c.rental_id, GROUP BY
13.

Cari film yang menghasilkan pendapatan tertinggi berdasarkan jumlah penyewaan dikali harga sewa.

Tabel yang digunakan:

rental(rental_id, inventory_id)

inventory(inventory_id, film_id)

film(film_id, title, rental_rate)

SELECT f.title, SUM(f.​ (a)   * COUNT(r.rental_id)) AS total_revenue

FROM rental r

JOIN inventory i ON r.inventory_id = i.inventory_id

JOIN film f ON i.film_id = f.film_id

​ (b)   f.title

ORDER BY total_revenue DESC

​ (c)   ;

Choose from the below words
rental_rate
LIMIT 1
GROUP BY
rental_id
ORDER BY rental_rate
SELECT DISTINCT
14.

Cari negara dengan populasi terbesar di setiap benua. Tabel yang digunakan: country(name, continent, population)

SELECT name, continent, population

FROM (SELECT name, continent, population,

​ (a)   ​ (b)   (​ (c)   BY ​ ​ (d)   ORDER BY population DESC) AS rnk

FROM country) ranked

WHERE rnk = ​ (e)   ;

Choose from the below words
CONTINENT
1
DENSE_RANK()
OVER
PARTITION
COUNTRY, 2, RANK(), UNDER, GROUP
REGION, 3, ROW_NUMBER(), ABOVE, DIVIDE
NATION, 4, COUNT(), AROUND, SEGMENT