รวมโจทย์ SQL สำหรับคนทำงานสาย Data พร้อมเฉลย

ในบทความนี้จะเป็นซีรี่ย์ใหม่ของเรา ที่จะนำโจทย์ SQL ของสาย Data มาให้ลองฝึกกัน

ใครยังไม่คล่องเรื่องนี้ หรือกำลังฝึกเขียน SQL อยู่ให้ทำโจทย์เยอะ ๆ จะได้คล่อง ๆ นะคะ ^^

อยากฝึกโจทย์ Data แนวไหนอีก ? ทักมาบอกทีมงานเราได้ที่ Post นี้เลย – ทีม Datayolk

เลือกอ่านเฉพาะหัวข้อ -
เกี่ยวกับตัวโจทย์

เกี่ยวกับตัวโจทย์

สำหรับโจทย์ของบทความนี้ เราจะเก็บ Data set (SQL DB) ไว้ในแพลตฟอร์ม Replit ตามลิ้งค์ด้านล่างซึ่งสามารถเข้าไปดูชุดข้อมูล และกด Run example เพื่อเริ่มทำโจทย์ได้เลย

โจทย์: Sale Dataset

เฉลยทั้งหมด: Github

โดยมี Data Dictionary ดังนี้

order_idIntegerPK
customer_idInteger
order_dateDate
Orders Table
product_idIntegerPK
product_nameString
unit_priceInteger
Products Table
order_idIntegerPK
product_idIntegerFK
quantityInteger
Order_Details Table
customer_idIntegerPK
customer_nameString
cityString
orders_countInteger
Customers Table
payment_idIntegerPK
order_idInteger
payment_methodString
amountFloating Point
Payments Table
payment_idIntegerPK
product_nameString
expiration_dateDatetime
Expired_Products Table

Q1: Retrieve all customers from Mora city

ANSWER

Q2: Retrieve the latest order for each customer

ANSWER

Q3: Get the total number of orders for each customer

ANSWER

Q4: Calculate the running total of sales for each product over time

ANSWER

Q5: Retrieve the product names and their prices from the “products” table, where the price is less than $20

ANSWER

Q6: Find the highest order amount and the corresponding customer

ANSWER

Q7: Retrieve the payment methods and their amounts from the “Payments” table where the total amount is less than $200

ANSWER

Q8: Calculate the average order count per city

ANSWER

Q9: Find the top 5 customers with the highest total order amount

ANSWER

Q10: List all products along with the total quantity sold

ANSWER

Q11: Calculate the payment method with the highest total amount

ANSWER

Q12: Calculate the total revenue from the “orders” table by multiplying “quantity” and “unit_price” columns

ANSWER

Q13: Retrieve the product names and their prices from the “products” table, where the price is between $20 and $50

ANSWER

Q14: Calculate the percentage of total sales for each payment method

ANSWER

Q15: Delete all records from the “expired_products” table where the expiration date is in the past

ANSWER

Q16: Find the product names with expiration dates before the year 2023

ANSWER

Q17: Retrieve the latest order for each product

ANSWER

Q18: Retrieve the total amount of payments made by each customer

ANSWER

Q19: Calculation the customers who have made the highest total payments

ANSWER

Q20: Rank products based on their total revenue

ANSWER

ภาพหน้าปกจาก Michael Dziedzic on Unsplash

อยากมาทำงานสาย Data ใช่มั้ย?

เรามี Workshop Data Interview ที่จะช่วยคุณเตรียมพร้อมสำหรับการสัมภาษณ์งาน ผ่านการทำ Case Interview