25 คำถามสัมภาษณ์งาน Data Analytics ที่พบบ่อยที่สุดในปี 2026

รวมคำถามสัมภาษณ์งาน Data Analytics ที่ถูกถามบ่อยที่สุดในปี 2026 ครอบคลุม SQL, Python, Power BI, สถิติ และคำถามเชิงพฤติกรรม พร้อมคำตอบโดยละเอียดและตัวอย่างโค้ด

คำถามสัมภาษณ์งาน Data Analytics ที่ครอบคลุม SQL queries, Python scripts และการแสดงผล Dashboard

การสัมภาษณ์งาน Data Analytics ในปี 2026 ทดสอบมากกว่าแค่ไวยากรณ์ SQL หรือการสร้างกราฟ ทีมคัดเลือกประเมินความสามารถในการดึงความหมายจากชุดข้อมูลที่ซับซ้อน การสื่อสารผลลัพธ์กับผู้มีส่วนได้ส่วนเสียที่ไม่ใช่สายเทคนิค และการเชื่อมโยงทุกตัวชี้วัดกลับไปยังผลลัพธ์ทางธุรกิจ คู่มือนี้ครอบคลุม 25 คำถามที่พบบ่อยที่สุดในตำแหน่ง Data Analyst ระดับ Junior, Mid-level และ Senior

วิธีใช้คู่มือนี้

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

คำถาม SQL สำหรับการสัมภาษณ์ Data Analyst

SQL ยังคงเป็นทักษะที่ถูกทดสอบมากที่สุดในการสัมภาษณ์งาน Data Analytics ทุกบริษัทที่มี Relational Database คาดหวังให้นักวิเคราะห์เขียน query ได้ด้วยตัวเอง

1. ความแตกต่างระหว่าง WHERE และ HAVING คืออะไร?

WHERE กรองแถวก่อนการรวมกลุ่ม (aggregation) HAVING กรองกลุ่มหลังการรวมกลุ่ม การสับสนระหว่างสองคำสั่งนี้เป็นหนึ่งในข้อผิดพลาดที่พบบ่อยที่สุดในการทดสอบทางเทคนิค

sql
-- monthly_revenue.sql
SELECT
  DATE_TRUNC('month', order_date) AS month,
  SUM(amount)                     AS revenue
FROM orders
WHERE status = 'completed'          -- row-level filter
GROUP BY month
HAVING SUM(amount) > 10000;         -- group-level filter

WHERE ลดขนาดชุดข้อมูลก่อนที่ database engine จะทำ GROUP BY ส่วน HAVING ทำงานกับผลลัพธ์ที่รวมกลุ่มแล้ว การใช้ WHERE เมื่อทำได้จะช่วยเพิ่มประสิทธิภาพ query เพราะลดขนาด working set ตั้งแต่ขั้นตอนแรกของ execution plan

2. อธิบาย Window Function พร้อมตัวอย่างจริง

Window Function คำนวณค่าข้ามชุดของแถวที่เกี่ยวข้องกับแถวปัจจุบัน โดยไม่ยุบ result set ฟังก์ชันเหล่านี้จำเป็นสำหรับการจัดอันดับ ยอดรวมสะสม และการเปรียบเทียบแบบช่วงเวลาต่อช่วงเวลา

sql
-- user_ranking.sql
SELECT
  user_id,
  purchase_date,
  amount,
  ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY purchase_date) AS purchase_rank,
  SUM(amount)   OVER (PARTITION BY user_id ORDER BY purchase_date) AS running_total,
  LAG(amount)   OVER (PARTITION BY user_id ORDER BY purchase_date) AS prev_amount
FROM purchases;

ROW_NUMBER กำหนดลำดับตามลำดับสำหรับแต่ละผู้ใช้ SUM(...) OVER(...) คำนวณยอดรวมสะสมโดยไม่ต้อง self-join LAG ดึงค่าของแถวก่อนหน้าเพื่อเปรียบเทียบโดยตรง รูปแบบนี้ถูกถามบ่อยในการคำนวณการเติบโตแบบเดือนต่อเดือน

3. วิธีระบุและลบ Record ที่ซ้ำกัน

การตรวจจับข้อมูลซ้ำเป็นงานประจำวันสำหรับนักวิเคราะห์ที่ทำงานกับ event logs, CRM exports หรือ data feeds จากภายนอก

sql
-- deduplicate_events.sql
WITH ranked AS (
  SELECT *,
    ROW_NUMBER() OVER (
      PARTITION BY user_id, event_type, DATE_TRUNC('minute', created_at)
      ORDER BY created_at
    ) AS rn
  FROM events
)
SELECT * FROM ranked WHERE rn = 1;

CTE กำหนดหมายเลขแถวภายในแต่ละกลุ่มที่ซ้ำกัน การเก็บเฉพาะ rn = 1 จะคืนค่าเฉพาะรายการแรกที่พบ วิธีนี้รักษาข้อมูลต้นฉบับขณะกรองข้อมูลที่ไม่ต้องการออก

4. เขียน Query คำนวณ Retention ตาม Weekly Cohort

Cohort Retention เป็นหนึ่งในการวิเคราะห์ที่ถูกร้องขอมากที่สุดในทีม Product และ Growth รูปแบบ SQL มีโครงสร้างที่สอดคล้องกันในทุก database

sql
-- weekly_cohort_retention.sql
WITH cohorts AS (
  SELECT
    user_id,
    DATE_TRUNC('week', MIN(event_date)) AS cohort_week
  FROM user_events
  GROUP BY user_id
),
activity AS (
  SELECT
    c.cohort_week,
    DATE_TRUNC('week', e.event_date) AS active_week,
    COUNT(DISTINCT e.user_id)        AS active_users
  FROM user_events e
  JOIN cohorts c ON c.user_id = e.user_id
  GROUP BY c.cohort_week, DATE_TRUNC('week', e.event_date)
)
SELECT
  cohort_week,
  EXTRACT(WEEK FROM active_week - cohort_week) AS weeks_since_signup,
  active_users
FROM activity
ORDER BY cohort_week, weeks_since_signup;

CTE แรกระบุสัปดาห์ที่สมัครของผู้ใช้แต่ละราย CTE ที่สองนับจำนวนผู้ใช้ที่ active แบบไม่ซ้ำกันต่อ cohort ต่อสัปดาห์ query สุดท้ายแปลงผลลัพธ์เป็น retention matrix การลดลงอย่างรวดเร็วในสัปดาห์ที่ 1 บ่งบอกถึงปัญหาด้าน onboarding ขณะที่เส้นโค้งที่ราบเรียบตั้งแต่สัปดาห์ที่ 4 เป็นต้นไปบ่งบอกถึงฐานผู้ใช้หลักที่มีเสถียรภาพ

5. CTE คืออะไร และเมื่อไหร่ควรใช้แทน Subquery?

Common Table Expression (CTE) คือ result set ชั่วคราวที่มีชื่อ กำหนดด้วย WITH CTE ช่วยเพิ่มความสามารถในการอ่านและรองรับ recursive queries Subquery มักสร้าง SQL ที่ซ้อนลึกซึ่งยากต่อการ debug CTE เป็นตัวเลือกที่ดีกว่าเมื่อ derived table เดียวกันถูกอ้างอิงหลายครั้ง หรือเมื่อตรรกะมีขั้นตอนการแปลงข้อมูลตั้งแต่สามขั้นตอนขึ้นไป

คำถาม Python สำหรับ Data Analysis

คำถาม Python เน้นที่ Pandas, workflow การทำความสะอาดข้อมูล และความสามารถในการอธิบายโค้ดในเชิงธุรกิจ ผู้สัมภาษณ์ต้องการเห็นวิธีแก้ปัญหาเชิงปฏิบัติ ไม่ใช่ abstraction ทางวิชาการ

6. วิธีจัดการค่าที่หายไปใน Pandas DataFrame

ข้อมูลที่หายไปทำให้ aggregation และ input ของโมเดลผิดพลาด วิธีการขึ้นอยู่กับประเภทของคอลัมน์และบริบทของธุรกิจ

python
# handle_missing.py
import pandas as pd
import numpy as np

df = pd.read_csv('sales.csv')

# Inspect the extent of missing data
print(df.isnull().sum())
print(df.isnull().mean().round(3))  # percentage per column

# Strategy 1: drop rows where critical columns are null
df_clean = df.dropna(subset=['customer_id', 'amount'])

# Strategy 2: fill numeric columns with median (robust to outliers)
df['amount'] = df['amount'].fillna(df['amount'].median())

# Strategy 3: fill categorical columns with the mode
df['region'] = df['region'].fillna(df['region'].mode()[0])

การลบแถวเหมาะสมเมื่ออัตราข้อมูลที่หายไปต่ำกว่า 5% และคอลัมน์นั้นมีความสำคัญ การใส่ค่า median ปลอดภัยกว่า mean สำหรับการกระจายที่เบ้ การใส่ค่า mode เหมาะกับคอลัมน์ categorical ที่มีค่าหลัก การบันทึกกลยุทธ์การ imputation เป็นสิ่งสำคัญสำหรับ audit trail

7. Merge, Join และ Concatenate: เมื่อไหร่ควรใช้แบบไหน

Pandas มีหลายวิธีในการรวม DataFrame ตัวเลือกขึ้นอยู่กับว่าการดำเนินการเป็นแบบแถวหรือคอลัมน์ และต้องการการจับคู่ด้วย key หรือไม่

python
# combine_dataframes.py
import pandas as pd

orders = pd.read_csv('orders.csv')
customers = pd.read_csv('customers.csv')

# Key-based merge (equivalent to SQL JOIN)
result = orders.merge(customers, on='customer_id', how='left')

# Stack rows from multiple sources
all_events = pd.concat([events_q1, events_q2], ignore_index=True)

# Add columns side-by-side (same row count required)
combined = pd.concat([features, labels], axis=1)

merge เป็นตัวเลือกที่ถูกต้องสำหรับการ join แบบอิง key concat ที่มีค่าเริ่มต้น axis=0 จะซ้อนแถว concat ที่มี axis=1 จะต่อคอลัมน์เคียงข้างกัน การใช้ how='left' จะรักษาแถวทั้งหมดจาก DataFrame ด้านซ้าย ซึ่งเทียบเท่ากับ SQL LEFT JOIN

8. Group, Aggregate และ Transform ข้อมูลการขาย

การดำเนินการ GroupBy เป็น Pandas ที่เทียบเท่ากับ SQL GROUP BY รูปแบบนี้ปรากฏในแทบทุกการบ้านเทคนิคของการสัมภาษณ์

python
# sales_analysis.py
import pandas as pd

df = pd.read_csv('transactions.csv', parse_dates=['date'])

# Monthly revenue by product category
monthly = (
    df.groupby([pd.Grouper(key='date', freq='M'), 'category'])
    .agg(revenue=('amount', 'sum'), orders=('order_id', 'nunique'))
    .reset_index()
)

# Add a column with each category's share of total monthly revenue
monthly['share'] = (
    monthly.groupby('date')['revenue']
    .transform(lambda x: x / x.sum())
    .round(4)
)

print(monthly.head(10))

agg ที่มี named aggregation ทำให้ output อ่านง่าย transform กระจายการคำนวณระดับกลุ่มกลับไปยังแต่ละแถว ซึ่งหลีกเลี่ยงขั้นตอน merge แยกต่างหาก การผสมผสานนี้ครอบคลุมงาน reporting ad-hoc ส่วนใหญ่

9. การตรวจจับและจัดการ Outlier ในชุดข้อมูล

การตรวจจับ outlier กำหนดว่าค่าที่สุดขั้วเป็นข้อผิดพลาดในการป้อนข้อมูล สัญญาณการฉ้อโกง หรือกรณีขอบที่แท้จริง

python
# detect_outliers.py
import pandas as pd
import numpy as np

df = pd.read_csv('transactions.csv')

# IQR method
Q1 = df['amount'].quantile(0.25)
Q3 = df['amount'].quantile(0.75)
IQR = Q3 - Q1
lower = Q1 - 1.5 * IQR
upper = Q3 + 1.5 * IQR

outliers = df[(df['amount'] < lower) | (df['amount'] > upper)]
print(f'Outliers found: {len(outliers)} ({len(outliers)/len(df)*100:.1f}%)')

# Cap instead of remove (winsorization)
df['amount_capped'] = df['amount'].clip(lower=lower, upper=upper)

วิธี IQR ตรวจจับค่าที่อยู่เกิน 1.5 เท่าของ interquartile range การ capping (winsorization) รักษาจำนวนแถวขณะจำกัดอิทธิพลของค่าสุดขั้ว การลบออกเหมาะสมเฉพาะเมื่อ outlier เป็นข้อผิดพลาดที่ชัดเจน

พร้อมที่จะพิชิตการสัมภาษณ์ Data Analytics แล้วหรือยังครับ?

ฝึกฝนด้วยตัวจำลองแบบโต้ตอบ, flashcards และแบบทดสอบเทคนิคครับ

คำถามสถิติและความน่าจะเป็น

ความรู้ทางสถิติแยกนักวิเคราะห์ที่รายงานตัวเลขออกจากผู้ที่ตีความตัวเลขได้อย่างถูกต้อง คำถามเหล่านี้ทดสอบความเข้าใจพื้นฐาน

10. อธิบาย P-value ด้วยภาษาที่เข้าใจง่าย

P-value คือความน่าจะเป็นที่จะสังเกตผลลัพธ์ที่สุดขั้วอย่างน้อยเท่ากับที่วัดได้ ภายใต้สมมติฐานว่า null hypothesis เป็นจริง P-value 0.03 ไม่ได้หมายความว่ามีโอกาส 3% ที่ null hypothesis จะเป็นจริง แต่หมายความว่าถ้า null hypothesis เป็นจริง ผลลัพธ์ที่สุดขั้วขนาดนี้จะเกิดขึ้นโดยบังเอิญ 3% ของเวลา ค่าเกณฑ์ (alpha) มักตั้งไว้ที่ 0.05 แต่การเลือกขึ้นอยู่กับต้นทุนของ false positive ในบริบทธุรกิจเฉพาะ

11. เมื่อไหร่ควรใช้ Median แทน Mean

Mean มีความอ่อนไหวต่อค่าสุดขั้ว ข้อมูลรายได้ จำนวนเงินทำธุรกรรม และระยะเวลา session เป็นตัวอย่างคลาสสิกที่ median ให้ค่ากลางที่เป็นตัวแทนได้ดีกว่า ชุดข้อมูลที่มีดีลองค์กรมูลค่าสูงเพียงไม่กี่รายการสามารถดึง mean ให้สูงกว่าประสบการณ์ของลูกค้าทั่วไปมาก การรายงาน median ควบคู่กับ mean พร้อมส่วนเบี่ยงเบนมาตรฐานให้ภาพที่สมบูรณ์แก่ผู้มีส่วนได้ส่วนเสีย

12. ความแตกต่างระหว่าง Correlation และ Causation คืออะไร?

Correlation วัดความแข็งแกร่งและทิศทางของความสัมพันธ์เชิงเส้นตรงระหว่างตัวแปรสองตัว Causation หมายความว่าตัวแปรหนึ่งมีอิทธิพลโดยตรงต่ออีกตัวหนึ่ง ยอดขายไอศกรีมและเหตุการณ์จมน้ำมีความสัมพันธ์กันเพราะทั้งสองเพิ่มขึ้นในฤดูร้อน ไม่ใช่เพราะอย่างหนึ่งเป็นสาเหตุของอีกอย่าง การพิสูจน์ causation ต้องการการทดลองแบบควบคุม (A/B test) หรือ framework การอนุมานเชิงสาเหตุที่เข้มงวด เช่น difference-in-differences หรือ instrumental variables

13. อธิบาย Type I และ Type II Error พร้อมตัวอย่างธุรกิจ

Type I error (false positive) เกิดขึ้นเมื่อการทดสอบปฏิเสธ null hypothesis อย่างไม่ถูกต้อง ตัวอย่าง: สรุปว่า checkout flow ใหม่เพิ่ม conversion ทั้งที่จริงแล้วไม่มีผล นำไปสู่การเปลี่ยนแปลงผลิตภัณฑ์ที่ไม่จำเป็น Type II error (false negative) เกิดขึ้นเมื่อการทดสอบไม่สามารถตรวจจับผลกระทบที่แท้จริง ตัวอย่าง: ยังคงใช้ checkout เก่าเพราะการทดสอบมีขนาดตัวอย่างไม่เพียงพอที่จะตรวจจับ lift ที่แท้จริง 2% การเพิ่มขนาดตัวอย่างลด Type II error การลดเกณฑ์ alpha ลด Type I error แต่เพิ่ม Type II error

คำถาม Power BI และ Data Visualization

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

14. DAX คืออะไร และแตกต่างจาก SQL อย่างไร?

DAX (Data Analysis Expressions) คือภาษาสูตรที่ใช้ใน Power BI, Analysis Services และ Excel Power Pivot ต่างจาก SQL ที่ทำงานกับชุดของแถว DAX ทำงานภายใน filter context ที่เปลี่ยนแปลงแบบ dynamic ตาม slicer, filter และ row context ฟังก์ชัน CALCULATE ใน DAX แก้ไข filter context ก่อนประเมิน expression ซึ่งเป็นแนวคิดที่ไม่มี equivalent โดยตรงใน SQL

15. ความแตกต่างระหว่าง Import Mode และ DirectQuery

Import mode โหลดข้อมูลเข้าสู่ in-memory engine ของ Power BI (VertiPaq) ให้ประสิทธิภาพ query ที่รวดเร็วแต่ต้องมีการ refresh ตามกำหนดเวลา DirectQuery ส่ง query ไปยัง source database แบบ real time รับประกันความสดของข้อมูลแต่ขึ้นอยู่กับประสิทธิภาพของระบบต้นทาง ในปี 2026 Microsoft Fabric เปิดตัว Direct Lake mode ที่อ่านไฟล์ Parquet จาก OneLake โดยไม่ต้อง import หรือ query SQL endpoint รวมความเร็วของ import mode เข้ากับความสดใกล้ real time

16. เมื่อไหร่ควรใช้ Bar Chart เทียบกับ Line Chart

Bar chart เปรียบเทียบหมวดหมู่ที่ไม่ต่อเนื่อง (รายได้ตามภูมิภาค, จำนวนตามผลิตภัณฑ์) Line chart แสดงแนวโน้มตามช่วงเวลาต่อเนื่อง (ผู้ใช้งานรายวัน, อัตรา churn รายเดือน) การใช้ line chart สำหรับข้อมูล categorical สื่อถึงแนวโน้มระหว่างหมวดหมู่ที่ไม่เกี่ยวข้องกัน ซึ่งทำให้ผู้ชมเข้าใจผิด คำถามต่อเนื่องที่พบบ่อยถามเกี่ยวกับ pie chart: ควรจำกัดการใช้เพื่อแสดงส่วนประกอบของทั้งหมดเมื่อมีไม่เกินห้าส่วน เพราะตาของมนุษย์ลำบากในการเปรียบเทียบมุมอย่างแม่นยำ

17. วิธีปรับแต่ง Power BI Report ที่ทำงานช้า

รายงานที่ช้ามักเกิดจากคอลัมน์ที่มากเกินไปใน data model, DAX measures ที่ซับซ้อนซึ่งถูกประเมินทีละแถว หรือ visual ที่ query หลายล้านแถว รายการตรวจสอบการปรับแต่งประกอบด้วย: ลบคอลัมน์ที่ไม่ได้ใช้เพื่อลดขนาดโมเดล แทนที่ฟังก์ชัน iterator (SUMX, FILTER) ด้วย equivalent ที่ไม่ใช่ iterator เมื่อเป็นไปได้ ลดจำนวน visual ต่อหน้าให้น้อยกว่า 15 และใช้ aggregation table สำหรับ dimension ที่มี high cardinality Performance Analyzer ที่มีอยู่ใน Power BI Desktop ระบุได้อย่างแม่นยำว่า visual หรือ DAX query ใดเป็นคอขวด

คำถามเชิงพฤติกรรมและ Case Study

ทักษะทางเทคนิคนำผู้สมัครเข้าสู่การสัมภาษณ์ คำถามเชิงพฤติกรรมกำหนดว่าจะได้รับข้อเสนอหรือไม่ ทุกคำตอบควรใช้ STAR framework: Situation, Task, Action, Result

18. อธิบายครั้งที่การวิเคราะห์ข้อมูลเปลี่ยนการตัดสินใจทางธุรกิจ

คำตอบที่ดีประกอบด้วยตัวชี้วัดเฉพาะที่เปลี่ยนแปลง วิธีการวิเคราะห์ที่ใช้ และผลกระทบเป็นตัวเลขหรือเปอร์เซ็นต์ คำตอบที่อ่อนแอจะอธิบาย dashboard โดยไม่เชื่อมโยงกับผลลัพธ์ โครงสร้างตัวอย่าง: "การวิเคราะห์ churn บนผลิตภัณฑ์ SaaS พบว่าผู้ใช้ที่ไม่เสร็จสิ้น onboarding ภายใน 48 ชั่วโมงมีอัตรา churn สูงกว่า 60% ที่ 30 วัน ทีมผลิตภัณฑ์เพิ่มลำดับอีเมลอัตโนมัติที่ทริกเกอร์ที่ชั่วโมงที่ 24 ลด churn 30 วันลง 8 จุดเปอร์เซ็นต์"

19. วิธีจัดการกับคำขอข้อมูลที่ขัดแย้งกันจาก Stakeholder

คำถามนี้ทดสอบทักษะการจัดลำดับความสำคัญและการสื่อสาร แนวทางที่แนะนำ: ชี้แจงคำถามทางธุรกิจเบื้องหลังแต่ละคำขอ ระบุตัวชี้วัดร่วม เสนอ dashboard เดียวที่ตอบสนองทั้งสองความต้องการ และบันทึกข้อแลกเปลี่ยนอย่างโปร่งใส การปฏิเสธ stakeholder เป็นสิ่งที่ยอมรับได้เมื่อมีข้อกังวลด้าน data governance หรือข้อจำกัดของทรัพยากรรองรับ โดยต้องเสนอทางเลือกอื่น

20. อธิบายการวิเคราะห์ที่ซับซ้อนให้ผู้ฟังที่ไม่ใช่สายเทคนิค

ผู้สัมภาษณ์มักขอให้ผู้สมัครอธิบายแนวคิดเช่น regression หรือ cohort analysis ราวกับกำลังพูดกับผู้จัดการฝ่ายการตลาด คำตอบที่ดีที่สุดใช้การเปรียบเทียบ หลีกเลี่ยงศัพท์เทคนิค และยึดคำอธิบายกับผลลัพธ์ทางธุรกิจ "Cohort analysis จัดกลุ่มลูกค้าตามเดือนที่สมัคร และติดตามว่ามีกี่คนที่ยังใช้งานอยู่หลังผ่านไปสามเดือน กราฟแสดงว่าผู้สมัครเดือนมกราคมมี retention ดีกว่าเดือนกุมภาพันธ์ ซึ่งสอดคล้องกับการเปลี่ยนแปลง onboarding ที่ปล่อยออกในปลายเดือนธันวาคม"

อ้างอิง STAR Framework

Situation: กำหนดบริบท Task: กำหนดวัตถุประสงค์ Action: อธิบายขั้นตอนเฉพาะที่ดำเนินการ Result: วัดผลกระทบเป็นตัวเลข ผู้สัมภาษณ์ลงโทษคำตอบที่คลุมเครือซึ่งข้ามขั้นตอน Result

คำถาม Data Cleaning และ ETL

ปัญหาคุณภาพข้อมูลใช้เวลาส่วนมากของนักวิเคราะห์ คำถามเหล่านี้ทดสอบทักษะ data wrangling ในโลกจริง

21. วิธีตรวจสอบข้อมูลหลังจาก ETL Pipeline ทำงาน

การตรวจสอบความถูกต้องควรครอบคลุมจำนวนแถว (ต้นทาง vs. ปลายทาง), อัตรา null บนคอลัมน์สำคัญ, referential integrity ระหว่างตาราง และการเปลี่ยนแปลงการกระจายของค่า (เพื่อตรวจจับการเปลี่ยนแปลง schema แบบเงียบ) การตรวจสอบอัตโนมัติที่ทำงานหลังทุกการ execute pipeline ป้องกันข้อมูลที่ผิดพลาดจากการเข้าถึง dashboard

python
# etl_validation.py
import pandas as pd

def validate_pipeline(source_df: pd.DataFrame, target_df: pd.DataFrame) -> dict:
    checks = {}
    # Row count match
    checks['row_count_match'] = len(source_df) == len(target_df)
    # Null rate on critical columns
    for col in ['user_id', 'event_date', 'amount']:
        null_rate = target_df[col].isnull().mean()
        checks[f'{col}_null_rate'] = round(null_rate, 4)
    # Revenue reconciliation
    source_total = source_df['amount'].sum()
    target_total = target_df['amount'].sum()
    checks['revenue_diff_pct'] = round(
        abs(source_total - target_total) / source_total * 100, 2
    )
    return checks

results = validate_pipeline(source, target)
for check, value in results.items():
    print(f'{check}: {value}')

ฟังก์ชันนี้คืนค่า dictionary ของผลการตรวจสอบที่สามารถป้อนเข้าระบบแจ้งเตือน ความแตกต่างของรายได้ที่เกิน 0.01% ควรเรียกให้เกิดการสอบสวน

22. ความแตกต่างระหว่างข้อมูล Normalized และ Denormalized คืออะไร?

ข้อมูล normalized ลดความซ้ำซ้อนโดยแบ่งข้อมูลออกเป็นตารางที่เกี่ยวข้องกัน (3NF) ข้อมูล denormalized รวมตารางเป็นโครงสร้างที่กว้างและแบนกว่า ซึ่งปรับให้เหมาะสมสำหรับ analytical query ที่เน้นการอ่าน ระบบ OLTP นิยม normalization เพื่อความสมบูรณ์ของข้อมูล Data warehouse และเครื่องมือ BI นิยม denormalization (star schema, snowflake schema) เพื่อความเร็วของ query การเข้าใจข้อแลกเปลี่ยนนี้เป็นพื้นฐานของการออกแบบ data pipeline ที่มีประสิทธิภาพ

คำถาม Advanced Analytics

ตำแหน่ง Senior ต้องการความคุ้นเคยกับการทดลอง, forecasting และกลยุทธ์ข้อมูลข้ามสายงาน

23. วิธีออกแบบ A/B Test ตั้งแต่เริ่มต้น

A/B test ต้องมีห้าองค์ประกอบ: สมมติฐานที่ชัดเจน ("การเปลี่ยนสีปุ่ม CTA จากเทาเป็นเขียวจะเพิ่ม click-through rate 5%"), primary metric (click-through rate), การคำนวณขนาดตัวอย่างจาก effect size ที่คาดหวังและ power ที่ต้องการ (โดยทั่วไป 80%), การสุ่มกำหนดผู้ใช้ไปยังกลุ่ม control และ treatment และระยะเวลาทดสอบที่กำหนดไว้ล่วงหน้าซึ่งคำนึงถึงฤดูกาลรายสัปดาห์ การทดสอบอย่างน้อยสอง business cycle เต็มป้องกันไม่ให้ bias ของวันในสัปดาห์บิดเบือนผลลัพธ์

ข้อผิดพลาดที่พบบ่อยใน A/B Testing

การดูผลลัพธ์ก่อนที่การทดสอบจะถึง statistical significance จะเพิ่มอัตรา false positive ให้ลงทะเบียนแผนการวิเคราะห์ ขนาดตัวอย่าง และระยะเวลาล่วงหน้าก่อนเริ่มการทดสอบ

24. Funnel Analysis และจุดที่ Drop-off สำคัญที่สุด

Funnel analysis ติดตามความก้าวหน้าของผู้ใช้ผ่านลำดับขั้นตอน (เช่น เยี่ยมชม homepage, ดูสินค้า, เพิ่มในตะกร้า, checkout, ซื้อ) การปรับแต่งที่มีผลกระทบสูงสุดควรมุ่งเป้าไปที่ขั้นตอนที่มี drop-off สัมบูรณ์มากที่สุด ไม่ใช่ drop-off เปอร์เซ็นต์มากที่สุด การลดลง 40% จาก 1,000 ผู้ใช้ที่ดูสินค้าเหลือ 600 ที่เพิ่มในตะกร้าคือ 400 ผู้ใช้ที่หายไป การลดลง 50% จาก 100 ผู้ใช้ที่ checkout เหลือ 50 ที่ซื้อคือเพียง 50 ผู้ใช้ที่หายไป การให้ความสำคัญกับคอขวดแรกสร้าง conversion รวมมากกว่า

25. วิธีสร้าง KPI Dashboard ที่ Stakeholder ใช้งานจริง

Dashboard ล้มเหลวเมื่อแสดงตัวชี้วัดมากเกินไปโดยไม่มีลำดับชั้น KPI dashboard ที่มีประสิทธิภาพใช้ inverted pyramid: ตัวชี้วัด north-star หนึ่งหรือสองตัวที่ด้านบน (เช่น monthly recurring revenue, net promoter score), ตัวชี้วัดสนับสนุนตรงกลาง (conversion rate, churn rate, average order value) และรายละเอียดเชิงวินิจฉัยที่เข้าถึงได้ผ่าน drill-down การจำกัดมุมมองระดับบนให้ไม่เกินเจ็ดตัวชี้วัดลดภาระทางความคิด การเพิ่ม annotation อัตโนมัติ ("รายได้ลดลง 12% เมื่อวันที่ 5 มีนาคมเนื่องจากระบบ payment gateway ขัดข้อง") ให้บริบทที่ตัวเลขดิบไม่มี

เริ่มฝึกซ้อมเลย!

ทดสอบความรู้ของคุณด้วยตัวจำลองสัมภาษณ์และแบบทดสอบเทคนิคครับ

สรุป

  • SQL window function, CTE และ cohort query ปรากฏในแทบทุกการคัดกรองทางเทคนิคของ data analyst การเขียนได้จากความจำเป็นความคาดหวังพื้นฐาน
  • ความชำนาญ Python Pandas ครอบคลุม 80% ของงานวิเคราะห์แบบ ad-hoc เน้นที่ merge, groupby, transform และการจัดการค่า null
  • การใช้เหตุผลทางสถิติ (p-value, correlation vs. causation, การออกแบบการทดลอง) แยกนักวิเคราะห์ที่รายงานตัวเลขจากผู้ที่ตีความได้อย่างถูกต้อง
  • คำถาม Power BI และ visualization ทดสอบการเลือกกราฟ, พื้นฐาน DAX และการปรับแต่งประสิทธิภาพ dashboard
  • คำตอบเชิงพฤติกรรมที่ใช้ STAR framework และมีผลลัพธ์เป็นตัวเลขดีกว่าเรื่องเล่าที่คลุมเครือ
  • ฝึกซ้อมโมดูลสัมภาษณ์ data analytics บน SharpSkill เพื่อฝึกแนวคิดเหล่านี้ด้วยแบบฝึกหัดจับเวลา
  • สำหรับการเตรียมตัวที่เกี่ยวข้อง คู่มือสัมภาษณ์ Data Science ครอบคลุมคำถาม machine learning และ statistical modeling ที่ทับซ้อนกับตำแหน่ง data analyst ระดับ senior

เริ่มฝึกซ้อมเลย!

ทดสอบความรู้ของคุณด้วยตัวจำลองสัมภาษณ์และแบบทดสอบเทคนิคครับ

แท็ก

#data-analytics
#interview
#sql
#python
#power-bi
#statistics

แชร์

บทความที่เกี่ยวข้อง