← Career Hub

Career Hub

Explore Data Roles

Six core data roles, where they sit on the analyze-to-build spectrum, and the actual SQL each one writes day to day. Pick a role to dig in.

TECHNICALBUSINESSANALYZEBUILDBI AnalystAnalytics EngineerData ScientistData EngineerML EngineerData Analyst

The six core roles

Data Analyst

Turns business questions into clear answers with SQL and charts.

Comp (relative)

$$$$
SQL intensity90%
SQLPythonStatsVizInfraBusiness

The most common entry point into data. Analysts answer the questions the business is actually asking: why did signups dip, which segment churns, what should we do next. The work is mostly SQL plus a layer of visualisation and clear communication.

A day in the life

  • Pull and clean data to answer a stakeholder question
  • Build a dashboard or a one-off deep dive
  • Present findings and recommend a decision

Tools

SQLExcel / SheetsTableauLookerPython (light)

Related roles

The SQL a Data Analyst writes

A signup-to-purchase conversion funnel.

Queryevents
Output3 rows
stepusers
visit10
signup6
purchase3

Every one of these roles runs on SQL.

Four of the six live in it daily. Build the skill that gets you in the door.

Practice interview questions →Start a case

QueryCase Career Hub

Explore Data Roles

Six core data roles, where they sit on the analyze-to-build spectrum, and the actual SQL each one writes day to day.

Data Analyst

Turns business questions into clear answers with SQL and charts.

Comp (relative)

$$$$

90% SQL

The most common entry point into data. Analysts answer the questions the business is actually asking: why did signups dip, which segment churns, what should we do next. The work is mostly SQL plus a layer of visualisation and clear communication.

A day in the life

  • Pull and clean data to answer a stakeholder question
  • Build a dashboard or a one-off deep dive
  • Present findings and recommend a decision

Tools

SQLExcel / SheetsTableauLookerPython (light)

Related roles

BI Analyst · Analytics Engineer · Data Scientist

SQLPythonStatsVizInfraBusiness

The SQL a Data Analyst writes

A signup-to-purchase conversion funnel.

SQL
SELECT
  step,
  COUNT(DISTINCT user_id) AS users
FROM events
GROUP BY step
ORDER BY users DESC;
stepusers
visit10
signup6
purchase3

BI Analyst

Owns the dashboards and metrics the business steers by.

Comp (relative)

$$$$

80% SQL

Business Intelligence analysts own the reporting layer: the dashboards leadership checks every morning and the definitions behind each metric. Less ad-hoc than a Data Analyst, more about consistency, self-serve reporting, and a single source of truth.

A day in the life

  • Maintain the dashboards the business runs on
  • Define and standardise core metrics
  • Investigate why a KPI moved

Tools

SQLPower BITableauLookerExcel

Related roles

Data Analyst · Analytics Engineer

SQLPythonStatsVizInfraBusiness

The SQL a BI Analyst writes

Monthly revenue with month-over-month growth.

SQL
SELECT
  month,
  revenue,
  ROUND(100.0 * (revenue - LAG(revenue) OVER (ORDER BY month))
    / LAG(revenue) OVER (ORDER BY month), 1) AS mom_growth_pct
FROM monthly_revenue
ORDER BY month;
monthrevenuemom_growth_pct
2024-01-0142,000NULL
2024-02-0145,5008.3
2024-03-0143,800-3.7
2024-04-0151,20016.9
2024-05-0156,90011.1
2024-06-0154,300-4.6

Analytics Engineer

Builds the clean, trusted datasets everyone else analyses.

Comp (relative)

$$$$

95% SQL

The bridge between raw data and the analysts who use it. Analytics engineers model messy source tables into clean, documented, tested datasets, mostly with SQL and dbt. If a role is almost entirely SQL, it is this one.

A day in the life

  • Model raw tables into clean, trusted datasets
  • Write and test transformations in dbt
  • Document metrics so analysts can self-serve

Tools

SQLdbtSnowflake / BigQueryGitAirflow

Related roles

Data Analyst · Data Engineer · BI Analyst

SQLPythonStatsVizInfraBusiness

The SQL a Analytics Engineer writes

Dedupe raw orders into a revenue-by-customer model.

SQL
WITH deduped AS (
  SELECT *,
    ROW_NUMBER() OVER (PARTITION BY order_id ORDER BY updated_at DESC) AS rn
  FROM raw_orders
),
clean_orders AS (
  SELECT order_id, customer_id, amount FROM deduped WHERE rn = 1
)
SELECT c.name, COUNT(*) AS orders, SUM(o.amount) AS revenue
FROM clean_orders o
JOIN customers c ON c.customer_id = o.customer_id
GROUP BY c.name
ORDER BY revenue DESC;
nameordersrevenue
Acme Co2390
Initech1300
Globex2165

Data Scientist

Uses statistics and ML to predict and explain behaviour.

Comp (relative)

$$$$

55% SQL

Data scientists go beyond what happened to what will happen and why. Statistics and machine learning are the core, but it still starts in SQL: most of the job is pulling and shaping data into a clean training set before any modelling begins.

A day in the life

  • Frame a business problem as a model
  • Engineer features, then train and evaluate a model
  • Communicate results and ship a recommendation

Tools

SQLPythonpandasscikit-learnJupyter

Related roles

Data Analyst · ML Engineer · Analytics Engineer

SQLPythonStatsVizInfraBusiness

The SQL a Data Scientist writes

Build a churn-model training set from user activity.

SQL
SELECT
  u.user_id,
  COUNT(o.order_id) AS order_count,
  COALESCE(SUM(o.amount), 0) AS total_spend,
  CASE
    WHEN MAX(o.order_date) < DATE '2024-05-01' OR MAX(o.order_date) IS NULL
    THEN 1 ELSE 0
  END AS churned
FROM users u
LEFT JOIN orders o ON o.user_id = u.user_id
GROUP BY u.user_id
ORDER BY total_spend DESC;
user_idorder_counttotal_spendchurned
321800
121300
21401
41301
5001

Data Engineer

Builds the pipelines and warehouses that move all the data.

Comp (relative)

$$$$

70% SQL

Data engineers build the plumbing: the pipelines that move and reshape data reliably, and the warehouse that keeps it fast and fresh. Heavier on software engineering and infrastructure, but still deeply SQL-driven once the data lands.

A day in the life

  • Build and monitor data pipelines
  • Move and reshape data at scale reliably
  • Keep the warehouse fast, fresh, and trustworthy

Tools

SQLPythonAirflowSparkKafkaSnowflake

Related roles

Analytics Engineer · ML Engineer

SQLPythonStatsVizInfraBusiness

The SQL a Data Engineer writes

Collapse an append-only event log into current state.

SQL
WITH ranked AS (
  SELECT *,
    ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY loaded_at DESC) AS rn
  FROM raw_user_events
)
SELECT user_id, email, status AS current_status
FROM ranked
WHERE rn = 1
ORDER BY user_id;
user_idemailcurrent_status
1a@example.comactive
2b@example.comactive
3c@example.comchurned

ML Engineer

Ships machine-learning models into production systems.

Comp (relative)

$$$$

35% SQL

ML engineers take a model from a notebook to a live, scalable service: feature pipelines, serving infrastructure, monitoring. The least SQL-heavy of the six, but SQL still shows up whenever features come out of the warehouse.

A day in the life

  • Take a model from notebook to production
  • Build serving and feature infrastructure
  • Monitor models for drift and performance

Tools

PythonSQLPyTorch / TensorFlowDockerKubernetesMLflow

Related roles

Data Scientist · Data Engineer

SQLPythonStatsVizInfraBusiness

The SQL a ML Engineer writes

Aggregate recent activity into model-serving features.

SQL
SELECT
  user_id,
  COUNT(*) FILTER (WHERE action IN ('click','view')) AS engagement_events,
  COALESCE(SUM(value) FILTER (WHERE action = 'purchase'), 0) AS revenue,
  MAX(event_date) AS last_seen
FROM activity
WHERE event_date >= DATE '2024-05-01'
GROUP BY user_id
ORDER BY engagement_events DESC;
user_idengagement_eventsrevenuelast_seen
33602024-05-25
121202024-05-20
2202024-05-06

querycase.com/career-hub/roles · Every one of these roles runs on SQL.

QueryCase

Learn SQL by solving mysteries. The most fun you'll have with a database.

Product

  • Home
  • About
  • Pricing

Resources

  • SQL Cheat Sheet
  • Career Hub
  • SQL Interview Questions
  • Data Roles Explained
  • Blog

Company

  • Contact Us
  • Privacy Policy
  • Terms of Service

© 2026 QueryCase. All rights reserved.