มาฝึกทำโปรเจค "Customer Review" ด้วย SQL แบบในชีวิตจริงกัน

เคยสงสัยกันไหมว่า Data Analyst ในชีวิตจริง พวกเราทำงานกันอย่างไร ?

สำหรับผู้ที่สนใจอยากลองมาทำงานสาย Data การฝึกฝนทำโปรเจคกับข้อมูลเสมือนจริงจะช่วยให้รับมือกับการสัมภาษณ์งาน และสามารถทำให้มั่นใจได้ว่าเมื่อเข้าไปทำงานจริงจะทำงานได้

ในบทความนี้ เราจะชวนมาวิเคราะห์ข้อมูลด้วยการเขียนโปรแกรม SQL ในธีม “Customer Review” สำหรับคนที่กำลังเริ่มเรียนรู้การใช้ SQL ก็สามารถทำไปพร้อม ๆ กันได้เลย

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

ปัญหาทางธุรกิจ

คุณเป็นเจ้าของร้านค้าออนไลน์ที่ขายดีมาก ๆ มีลูกค้าแวะเวียนซื้อของมากมาย แน่นอนว่าในการซื้อสินค้าแต่ละครั้ง ลูกค้าก็จะให้คะแนนรีวิวหลังจากได้รับของ ซึ่งคุณคิดว่าคะแนนเหล่านั้นมีคุณค่าอย่างยิ่งในการปรับปรุงการให้บริการและพัฒนาร้านค้าให้ดีมากขึ้น คุณจึงลงมือวิเคราะห์ข้อมูลทันที ข้อมูลเหล่านี้ประกอบด้วย ชื่อ-อีเมล์ลูกค้า, สินค้าที่ลูกค้าซื้อไป, ข้อความรีวิว และคะแนนเรตติ้ง

ทำโจทย์ Customer Review ด้วย Replit

ในบทความนี้เราใช้ Replit ที่ใช้งานสะดวกมาก ไม่ต้อง Install Program ก็สามารถใช้งานได้ เพียงเข้าไปที่ Customer Review Project แล้วกด Run ก็สามารถเริ่มเขียน SQL เพื่อวิเคราะห์ข้อมูลได้เลย แต่หากติดปัญหาอะไร อย่าลืมอ่านวิธีการใช้งานด้านข้างนะ

คำอธิบายชุดข้อมูลในโจทย์

ในโจทย์นี้กำหนดให้มีชุดข้อมูลดังนี้

Customers Table

AttributeData TypeMeaning
customer_idINTEGER (Primary Key)Unique identifier for each customer.
nameTEXTName of the customer.
contact_infoTEXTContact information for the customer.

Products table

AttributeData TypeMeaning
product_idINTEGER (Primary Key)Unique identifier for each product.
product_nameTEXTName or description of the product.

Reviews table

AttributeData TypeMeaning
review_idTEXTUnique identifier for each review.
customer_idINTEGER (Foreign Key)Identifier linking to the Customers table.
product_idINTEGER (Foreign Key)Identifier linking to the Products table.
ratingINTEGERNumeric rating given by the customer.
review_textTEXTTextual content of the customer’s review.
dateDATEDate when the review was submitted.

1. หาเรตติ้งเฉลี่ยของสินค้าแต่ละรายการ

ให้ดึงข้อมูล product_id, product_name และ average_rating

ผลลัพธ์ที่คาดหวัง

product_idproduct_nameaverage_rating

ANSWER

2. ดึงข้อมูลลูกค้าที่ให้เรตติ้งสูง เงื่อนไขคือลูกค้าให้เรตติ้งมากกว่า 4

ให้ดึงข้อมูลชื่อลูกค้า (name) และอีเมล์ (contact_info) ที่ให้เรตติ้งมากกว่า 4

ผลลัพธ์ที่คาดหวัง

namecontact_info

ANSWER

3. นับจำนวนครั้งที่ลูกค้าแต่ละคนเข้ามาเขียนรีวิว

ให้ดึงข้อมูลชื่อลูกค้า (name) และจำนวนข้อความรีวิว (review_count)

ผลลัพธ์ที่คาดหวัง

namereview_count

ANSWER

4. หาค่าเฉลี่ยเรตติ้งในแต่ละวันในสัปดาห์

ให้ดึงข้อมูลวันในสัปดาห์ (day_of_week) และ ค่าเฉลี่ยเรทติ้ง (avg_rating)

ผลลัพธ์ที่คาดหวัง

day_of_weekavg_rating
0
1
2
3
4
5
6

ANSWER

5. หาว่าสินค้าที่ได้เรตติ้งเท่ากับหรือมากกว่า 3.5 เป็นสินค้าชนิดใดบ้าง

ให้ดึงข้อมูล product_id, product_name และ average_rating

ผลลัพธ์ที่คาดหวัง

product_idproduct_nameaverage_rating

ANSWER

6. นับจำนวนข้อความที่รีวิวในด้านลบ

ข้อความรีวิวในด้านลบจะมีคำว่า disappointed

ให้ดึง count(review_text) ที่มีคำว่า “disappointed.”

ผลลัพธ์ที่คาดหวัง

count(review_text)

ANSWER

7. หาว่าลูกค้าคนไหนบ้างที่เขียนข้อความรีวิวในด้านบวก

ให้ดึงข้อมูล customer_id, review_text ที่ข้อความรีวิวในด้านบวกจะมีคำว่า “excellent” ,“impressive” หรือ “recommend” และได้คะแนนเรทติ้งสูง(เรตติ้งเท่ากับหรือมากกว่า 4

ผลลัพธ์ที่คาดหวัง

customer_idreview_text

ANSWER

8. ลูกค้าแต่ละคนมักเขียนข้อความรีวิวโดยเฉลี่ยกี่คำ

ให้ดึงข้อมูลชื่อลูกค้า อีเมล์ และความยาวเฉลี่ยทุกครั้งของการเขียนข้อความรีวิว

Note: ลูกค้าหนึ่งคนอาจซื้อของมากกว่า 1 ครั้งและเขียนรีวิวมากกว่า 1 ครั้งดังนั้นให้หาความยาวเฉลี่ยของการเขียนข้อความรีวิว

ผลลัพธ์ที่คาดหวัง

namecontact_infoavg_review_length

ANSWER

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

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