เคยสงสัยกันไหมว่า 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