เคยสงสัยกันไหมว่า Data Analyst ในชีวิตจริง พวกเราทำงานกันอย่างไร ?
สำหรับผู้ที่สนใจอยากลองมาทำงานสาย Data การฝึกฝนทำโปรเจคกับข้อมูลเสมือนจริงจะช่วยให้รับมือกับการสัมภาษณ์งาน และสามารถทำให้มั่นใจได้ว่าเมื่อเข้าไปทำงานจริงจะทำงานได้
ในบทความนี้ เราจะชวนมาวิเคราะห์ข้อมูลด้วยการเขียนโปรแกรม SQL ในธีม “Customer Review” สำหรับคนที่กำลังเริ่มเรียนรู้การใช้ SQL ก็สามารถทำไปพร้อม ๆ กันได้เลย
อยากฝึกโจทย์ Data แนวไหนอีก ? ทักมาบอกทีมงานเราได้ที่ Post นี้เลย – ทีม Datayolk
ปัญหาทางธุรกิจ
คุณเป็นเจ้าของร้านค้าออนไลน์ที่ขายดีมาก ๆ มีลูกค้าแวะเวียนซื้อของมากมาย แน่นอนว่าในการซื้อสินค้าแต่ละครั้ง ลูกค้าก็จะให้คะแนนรีวิวหลังจากได้รับของ ซึ่งคุณคิดว่าคะแนนเหล่านั้นมีคุณค่าอย่างยิ่งในการปรับปรุงการให้บริการและพัฒนาร้านค้าให้ดีมากขึ้น คุณจึงลงมือวิเคราะห์ข้อมูลทันที ข้อมูลเหล่านี้ประกอบด้วย ชื่อ-อีเมล์ลูกค้า, สินค้าที่ลูกค้าซื้อไป, ข้อความรีวิว และคะแนนเรตติ้ง
ทำโจทย์ Customer Review ด้วย Replit
ในบทความนี้เราใช้ Replit ที่ใช้งานสะดวกมาก ไม่ต้อง Install Program ก็สามารถใช้งานได้ เพียงเข้าไปที่ Customer Review Project แล้วกด Run ก็สามารถเริ่มเขียน SQL เพื่อวิเคราะห์ข้อมูลได้เลย แต่หากติดปัญหาอะไร อย่าลืมอ่านวิธีการใช้งานด้านข้างนะ
คำอธิบายชุดข้อมูลในโจทย์
ในโจทย์นี้กำหนดให้มีชุดข้อมูลดังนี้
Customers Table
| Attribute | Data Type | Meaning |
|---|---|---|
| customer_id | INTEGER (Primary Key) | Unique identifier for each customer. |
| name | TEXT | Name of the customer. |
| contact_info | TEXT | Contact information for the customer. |
Products table
| Attribute | Data Type | Meaning |
|---|---|---|
| product_id | INTEGER (Primary Key) | Unique identifier for each product. |
| product_name | TEXT | Name or description of the product. |
Reviews table
| Attribute | Data Type | Meaning |
|---|---|---|
| review_id | TEXT | Unique identifier for each review. |
| customer_id | INTEGER (Foreign Key) | Identifier linking to the Customers table. |
| product_id | INTEGER (Foreign Key) | Identifier linking to the Products table. |
| rating | INTEGER | Numeric rating given by the customer. |
| review_text | TEXT | Textual content of the customer’s review. |
| date | DATE | Date when the review was submitted. |
1. หาเรตติ้งเฉลี่ยของสินค้าแต่ละรายการ
ให้ดึงข้อมูล product_id, product_name และ average_rating
ผลลัพธ์ที่คาดหวัง
| product_id | product_name | average_rating |
|---|---|---|
2. ดึงข้อมูลลูกค้าที่ให้เรตติ้งสูง เงื่อนไขคือลูกค้าให้เรตติ้งมากกว่า 4
ให้ดึงข้อมูลชื่อลูกค้า (name) และอีเมล์ (contact_info) ที่ให้เรตติ้งมากกว่า 4
ผลลัพธ์ที่คาดหวัง
| name | contact_info |
|---|---|
3. นับจำนวนครั้งที่ลูกค้าแต่ละคนเข้ามาเขียนรีวิว
ให้ดึงข้อมูลชื่อลูกค้า (name) และจำนวนข้อความรีวิว (review_count)
ผลลัพธ์ที่คาดหวัง
| name | review_count |
|---|---|
4. หาค่าเฉลี่ยเรตติ้งในแต่ละวันในสัปดาห์
ให้ดึงข้อมูลวันในสัปดาห์ (day_of_week) และ ค่าเฉลี่ยเรทติ้ง (avg_rating)
ผลลัพธ์ที่คาดหวัง
| day_of_week | avg_rating |
|---|---|
| 0 | |
| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 |
5. หาว่าสินค้าที่ได้เรตติ้งเท่ากับหรือมากกว่า 3.5 เป็นสินค้าชนิดใดบ้าง
ให้ดึงข้อมูล product_id, product_name และ average_rating
ผลลัพธ์ที่คาดหวัง
| product_id | product_name | average_rating |
|---|---|---|
6. นับจำนวนข้อความที่รีวิวในด้านลบ
ข้อความรีวิวในด้านลบจะมีคำว่า “disappointed”
ให้ดึง count(review_text) ที่มีคำว่า “disappointed.”
ผลลัพธ์ที่คาดหวัง
| count(review_text) |
|---|
7. หาว่าลูกค้าคนไหนบ้างที่เขียนข้อความรีวิวในด้านบวก
ให้ดึงข้อมูล customer_id, review_text ที่ข้อความรีวิวในด้านบวกจะมีคำว่า “excellent” ,“impressive” หรือ “recommend” และได้คะแนนเรทติ้งสูง(เรตติ้งเท่ากับหรือมากกว่า 4
ผลลัพธ์ที่คาดหวัง
| customer_id | review_text |
|---|---|
8. ลูกค้าแต่ละคนมักเขียนข้อความรีวิวโดยเฉลี่ยกี่คำ
ให้ดึงข้อมูลชื่อลูกค้า อีเมล์ และความยาวเฉลี่ยทุกครั้งของการเขียนข้อความรีวิว
Note: ลูกค้าหนึ่งคนอาจซื้อของมากกว่า 1 ครั้งและเขียนรีวิวมากกว่า 1 ครั้งดังนั้นให้หาความยาวเฉลี่ยของการเขียนข้อความรีวิว
ผลลัพธ์ที่คาดหวัง
| name | contact_info | avg_review_length |
|---|---|---|
อยากมาทำงานสาย Data ใช่มั้ย?
เรามี Workshop Data Interview ที่จะช่วยคุณเตรียมพร้อมสำหรับการสัมภาษณ์งาน ผ่านการทำ Case Interview




