สายงาน Data Analyst
สายงาน Data Analyst วิเคราะห์ข้อมูล SQL Python Dashboard Tableau Power BI เส้นทางอาชีพ เงินเดือน ทักษะ สัมภาษณ์
| ระดับ | ประสบการณ์ | ทักษะหลัก | เงินเดือน (บาท) | หน้าที่ |
|---|---|---|---|---|
| Junior | 0-2 ปี | SQL, Excel, Python พื้นฐาน | 25,000-40,000 | ดึงข้อมูล สร้าง Report |
| Mid-level | 2-5 ปี | SQL ขั้นสูง, Python, Dashboard | 40,000-70,000 | วิเคราะห์ สร้าง Dashboard |
| Senior | 5-8 ปี | Strategy, Stakeholder Management | 70,000-120,000 | Lead วิเคราะห์ กำหนดทิศทาง |
| Lead/Manager | 8+ ปี | Team Management, Business Strategy | 100,000-180,000+ | บริหารทีม กำหนด Data Strategy |
ทักษะที่ต้องมี
# === Data Analyst Skills ===
from dataclasses import dataclass
@dataclass
class Skill:
skill: str
importance: str
tools: str
learn_from: str
time_to_learn: str
skills = [
Skill("SQL",
"สำคัญที่สุด ใช้ทุกวัน 80% ของงาน",
"PostgreSQL, MySQL, BigQuery, Snowflake",
"W3Schools, Mode Analytics, LeetCode SQL",
"2-4 สัปดาห์ พื้นฐาน / 2-3 เดือน ขั้นสูง"),
Skill("Python (Pandas)",
"สำคัญมาก สำหรับ Data Cleaning Analysis",
"Pandas, NumPy, Matplotlib, Seaborn, Jupyter",
"Kaggle Learn, DataCamp, Coursera",
"1-2 เดือน พื้นฐาน / 3-6 เดือน ขั้นสูง"),
Skill("Data Visualization",
"สำคัญมาก สร้าง Dashboard Report",
"Tableau, Power BI, Looker, Google Data Studio",
"Tableau Public, YouTube Tutorial, Coursera",
"2-4 สัปดาห์ พื้นฐาน / 2-3 เดือน ขั้นสูง"),
Skill("Excel / Google Sheets",
"ยังใช้บ่อย Pivot Table Charts",
"Excel, Google Sheets, Pivot Table, VLOOKUP",
"ExcelJet, Google Sheets Course",
"1-2 สัปดาห์ ถ้ามีพื้นฐาน"),
Skill("Statistics",
"สำคัญ สำหรับวิเคราะห์อย่างถูกต้อง",
"Descriptive, Inferential, Hypothesis Testing, Regression",
"Khan Academy, StatQuest YouTube, Coursera",
"1-3 เดือน"),
Skill("Communication",
"สำคัญมาก นำเสนอ Insight ให้คนไม่ Technical",
"Presentation, Storytelling, Slide Deck",
"ฝึกนำเสนอ ฝึกเขียน Summary ฝึกอธิบาย",
"ต่อเนื่อง ฝึกทุกวัน"),
]
print("=== Data Analyst Skills ===")
for s in skills:
print(f" [{s.skill}] Importance: {s.importance}")
print(f" Tools: {s.tools}")
print(f" Learn: {s.learn_from}")
print(f" Time: {s.time_to_learn}")
SQL Interview
# === SQL Interview Prep ===
# -- Common SQL Interview Questions --
#
# -- 1. Window Function: Running Total
# SELECT date, revenue,
# SUM(revenue) OVER (ORDER BY date) AS running_total
# FROM daily_sales;
#
# -- 2. Rank within Group
# SELECT department, employee, salary,
# RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS rank
# FROM employees;
#
# -- 3. YoY Growth
# WITH monthly AS (
# SELECT DATE_TRUNC('month', order_date) AS month,
# SUM(amount) AS revenue
# FROM orders
# GROUP BY 1
# )
# SELECT month, revenue,
# LAG(revenue, 12) OVER (ORDER BY month) AS prev_year,
# ROUND((revenue - LAG(revenue, 12) OVER (ORDER BY month))
# / LAG(revenue, 12) OVER (ORDER BY month) * 100, 1) AS yoy_growth
# FROM monthly;
#
# -- 4. Customer Retention
# WITH first_purchase AS (
# SELECT customer_id,
# MIN(DATE_TRUNC('month', order_date)) AS cohort_month
# FROM orders GROUP BY 1
# ),
# activity AS (
# SELECT o.customer_id,
# DATE_TRUNC('month', o.order_date) AS activity_month,
# f.cohort_month
# FROM orders o JOIN first_purchase f ON o.customer_id = f.customer_id
# )
# SELECT cohort_month,
# COUNT(DISTINCT CASE WHEN activity_month = cohort_month THEN customer_id END) AS month_0,
# COUNT(DISTINCT CASE WHEN activity_month = cohort_month + INTERVAL '1 month' THEN customer_id END) AS month_1
# FROM activity
# GROUP BY 1 ORDER BY 1;
@dataclass
class SQLTopic:
topic: str
difficulty: str
frequency: str
key_functions: str
practice: str
topics = [
SQLTopic("JOIN (Inner, Left, Full)",
"ง่าย-กลาง", "ทุกสัมภาษณ์",
"INNER JOIN, LEFT JOIN, FULL OUTER JOIN, CROSS JOIN",
"LeetCode SQL Easy-Medium"),
SQLTopic("Window Functions",
"กลาง-สูง", "80% ของสัมภาษณ์",
"ROW_NUMBER, RANK, LAG, LEAD, SUM OVER, PARTITION BY",
"Mode Analytics Tutorial + LeetCode"),
SQLTopic("CTE (Common Table Expression)",
"กลาง", "60% ของสัมภาษณ์",
"WITH ... AS (...) SELECT ...",
"เขียน Complex Query ด้วย CTE แทน Subquery"),
SQLTopic("Aggregation + GROUP BY",
"ง่าย", "ทุกสัมภาษณ์",
"COUNT, SUM, AVG, MAX, MIN, GROUP BY, HAVING",
"LeetCode SQL Easy"),
SQLTopic("Date Functions",
"กลาง", "50% ของสัมภาษณ์",
"DATE_TRUNC, EXTRACT, DATEDIFF, DATE_ADD, INTERVAL",
"ฝึก YoY MoM WoW calculation"),
]
print("=== SQL Interview Topics ===")
for t in topics:
print(f" [{t.topic}] Difficulty: {t.difficulty} | Freq: {t.frequency}")
print(f" Functions: {t.key_functions}")
print(f" Practice: {t.practice}")
Portfolio Projects
# === Portfolio Guide ===
@dataclass
class Project:
project: str
dataset: str
skills_shown: str
deliverable: str
time: str
projects = [
Project("E-commerce Sales Analysis",
"Kaggle E-commerce Dataset",
"SQL, Pandas, Matplotlib, Cohort Analysis",
"Jupyter Notebook + Tableau Dashboard",
"1-2 สัปดาห์"),
Project("Customer Segmentation (RFM)",
"Online Retail Dataset (UCI)",
"Python, Clustering, RFM Analysis, Visualization",
"Notebook + Presentation Slide",
"1-2 สัปดาห์"),
Project("A/B Test Analysis",
"Kaggle A/B Testing Dataset",
"Statistics, Hypothesis Testing, Python",
"Notebook + Summary Report",
"1 สัปดาห์"),
Project("Dashboard (Tableau/Power BI)",
"COVID-19 / Stock / Sales Data",
"Tableau/Power BI, Design, Storytelling",
"Interactive Dashboard on Tableau Public",
"1 สัปดาห์"),
Project("SQL Analysis Project",
"Any dataset loaded to PostgreSQL",
"Complex SQL, Window Functions, CTE, Analysis",
"SQL queries + Findings Summary",
"3-5 วัน"),
]
print("=== Portfolio Projects ===")
for p in projects:
print(f" [{p.project}] Time: {p.time}")
print(f" Dataset: {p.dataset}")
print(f" Skills: {p.skills_shown}")
print(f" Deliverable: {p.deliverable}")
เคล็ดลับ
- SQL: ฝึก SQL ทุกวัน LeetCode Mode Analytics สำคัญที่สุด
- Portfolio: สร้าง 3-5 โปรเจกต์ ใส่ GitHub แสดง Skill รอบด้าน
- Dashboard: สร้าง Dashboard บน Tableau Public แสดงฝีมือ
- Certificate: Google Data Analytics Certificate เพิ่มโอกาส
- Network: เข้า Community Data Analyst กลุ่ม Facebook LinkedIn
Data Analyst ทำอะไร
วิเคราะห์ข้อมูล SQL Python Dashboard Report ช่วยตัดสินใจ ทำความสะอาดข้อมูล หา Pattern Trend Insight นำเสนอ Business Product Marketing
ทักษะอะไรบ้าง
SQL สำคัญสุด Python Pandas Excel Pivot Tableau Power BI Statistics Mean Regression Communication นำเสนอ Business Acumen เข้าใจธุรกิจ
เงินเดือนเท่าไหร่
Junior 25000-40000 Mid 40000-70000 Senior 70000-120000 Manager 100000-180000+ บริษัทต่างชาติสูงกว่า Industry Company Size Location Skill
เตรียมตัวอย่างไร
SQL LeetCode Python Pandas Portfolio GitHub Dashboard Tableau Public Statistics Certificate Google IBM สมัครงาน Interview Window Function CTE Case Study
สรุป
สายงาน Data Analyst SQL Python Tableau Power BI Dashboard Statistics Communication Portfolio Certificate เงินเดือน เส้นทางอาชีพ สัมภาษณ์
