Loading preparation module...
Initializing deterministic evaluation engine
Advanced analytical SQL, window functions, statistical inference, cohort retention analysis, and business intelligence reporting.
Data Analysts & SQL Specialists transform complex transactional databases and event streams into actionable business intelligence. They write high-performance SQL queries, design metric semantic layers, conduct A/B test statistical analysis, and model user retention cohorts.
| Level | Title | Experience | Core Architectural Responsibility |
|---|---|---|---|
| L1 | Junior Data Analyst | 0-2 yrs | Basic SQL queries (joins, aggregations), dashboard maintenance, and data cleansing. |
| L2 | Senior Data Analyst | 2-5 yrs | Advanced window functions, cohort retention modeling, A/B test analysis, and query optimization. |
| L3 | Lead Analytics Specialist | 5-8 yrs | Semantic metric layer design, data modeling governance, and predictive statistical modeling. |
| L4 | Principal Analytics Strategist | 8+ yrs | Company-wide data strategy, automated attribution modeling, and executive advising. |
| Region | Entry Tier (L1) | Mid-Senior (L2/L3) | Staff/Principal (L4+) |
|---|---|---|---|
| North America | $80,000 - $105,000 | $120,000 - $165,000 | $180,000 - $275,000+ |
| Europe (EU/UK) | EUR 45,000 - 65,000 | EUR 70,000 - 105,000 | EUR 120,000 - 175,000+ |
| Asia-Pacific / India | INR 8,00,000 - 13,00,000 | INR 16,00,000 - 30,00,000 | INR 38,00,000 - 70,00,000+ |
Master multi-table joins, subqueries, grouping sets, and analytical window functions.
Author a modular SQL query computing Monthly Recurring Revenue (MRR), expansion revenue, contraction revenue, and churn rate across monthly sign-up cohorts over 24 months.
Execute rigorous hypothesis testing, sample size sizing, and query execution plan tuning.
Perform an end-to-end evaluation of an e-commerce checkout A/B test. Calculate sample size adequacy, check for Sample Ratio Mismatch (SRM), compute conversion lifts, and output 95% confidence intervals.
For the three tied records followed by the next record: 1) ROW_NUMBER() arbitrarily assigns distinct sequential integers without ties: 1, 2, 3, 4. 2) RANK() assigns identical ranks to tied records and leaves gaps in the sequence equal to the number of tied records: 1, 1, 1, 4. 3) DENSE_RANK() assigns identical ranks to tied records without leaving gaps in subsequent ranks: 1, 1, 1, 2.
Executing SELECT * FROM users WHERE id NOT IN (SELECT user_id FROM unsubscribed) when the subquery contains a single NULL value.
In SQL three-valued logic, x NOT IN (1, 2, NULL) evaluates to UNKNOWN for all rows because comparison against NULL cannot yield TRUE. The query returns 0 rows. Use NOT EXISTS or filter WHERE user_id IS NOT NULL in the subquery.
SQL queries execute in a strict logical phase order that differs fundamentally from the lexical written syntax.
Aliases defined in the SELECT clause cannot be referenced in WHERE or GROUP BY clauses because those phases execute prior to SELECT projection.
WITH user_activity AS (
SELECT
user_id,
DATE_TRUNC('month', signup_date) AS cohort_month,
DATE_TRUNC('month', activity_date) AS activity_month
FROM user_events
JOIN users USING (user_id)
)
SELECT
cohort_month,
activity_month,
COUNT(DISTINCT user_id) AS active_users,
ROUND(
COUNT(DISTINCT user_id)::numeric /
FIRST_VALUE(COUNT(DISTINCT user_id)) OVER (
PARTITION BY cohort_month
ORDER BY activity_month
) * 100, 2
) AS retention_percentage
FROM user_activity
GROUP BY 1, 2
ORDER BY 1, 2;