SQL Code Typing Test

Live CPM0
Accuracy100%
Time01:00
Start typingSQL / 60s
Type the displayed code. Pasting and drag-and-drop are disabled.Ready for SQL, 60 seconds. Start typing when you are ready.
WITH user_monthly_sales AS ( SELECT u.id AS user_id, u.username, DATE_TRUNC('month', o.created_at) AS sales_month, SUM(oi.price * oi.quantity) AS total_gross_revenue, COUNT(DISTINCT o.id) AS total_orders FROM users u INNER JOIN orders o ON o.user_id = u.id INNER JOIN order_items oi ON oi.order_id = o.id WHERE u.status = 'active' AND o.payment_status = 'completed' AND o.created_at >= '2025-01-01' GROUP BY u.id, u.username, DATE_TRUNC('month', o.created_at) ), ranked_performers AS ( SELECT user_id, username, sales_month, total_gross_revenue, total_orders, DENSE_RANK() OVER (PARTITION BY sales_month ORDER BY total_gross_revenue DESC) AS rank_position, LAG(total_gross_revenue) OVER (PARTITION BY user_id ORDER BY sales_month) AS prev_month_revenue FROM user_monthly_sales ) SELECT rp.sales_month, rp.username, rp.total_gross_revenue, rp.total_orders, rp.rank_position, COALESCE(rp.prev_month_revenue, 0) AS last_month_rev, CASE WHEN rp.prev_month_revenue IS NULL THEN 'New Performer' WHEN rp.total_gross_revenue > rp.prev_month_revenue THEN 'Revenue Increased' ELSE 'Revenue Decreased' END AS monthly_performance_trend FROM ranked_performers rp WHERE rp.rank_position <= 10 ORDER BY rp.sales_month DESC, rp.total_gross_revenue DESC;
Focus here and start typing to begin
built for developersReal code typing practice. Useful metrics. Improve faster.Learn more

Codestroke is a code typing test for developers. Practice real JavaScript, Python, SQL, Java, C++, HTML/CSS, PHP, Go, and Kotlin snippets instead of ordinary prose.

This SQL typing test focuses on queries, JOINs, aggregations, and window functions. Choose a 30, 60, or 120 second session and track your code typing speed and accuracy as you practice.

SQL typing practice

Practice SQL typing with SELECT queries, JOINs, aggregations, and window functions. This SQL typing test builds query fluency while tracking coding speed and accuracy.

Try the main code typing test or choose another language from the directory below.

01

Real snippets

Practice syntax, punctuation, and indentation developers actually use.

02

Useful metrics

Track live CPM, accuracy, time, and detailed session results.

03

Flexible practice

Choose a 30, 60, or 120 second test and improve at your pace.

how speed and accuracy work

Code typing speed is measured in CPM (characters per minute), so symbols, brackets, and indentation count just like letters. Accuracy shows how much of the snippet you entered correctly. Pick a language to practice a focused code typing test:

code typing test FAQ

What does the SQL typing test include?

The SQL test includes realistic queries with SELECT statements, JOINs, aggregations, filters, and window functions so you can practice database syntax accurately.

What is a code typing test?

A code typing test measures how quickly and accurately you can type real source code instead of ordinary prose. Codestroke is built for developers.

How does a coding speed test work?

Code contains symbols, brackets, and short tokens, so CPM measures every typed character. Codestroke also reports WPM, accuracy, and the selected test duration.

Why measure CPM instead of WPM?

Words per minute can be misleading for code because syntax contains punctuation and short tokens. CPM gives a clearer view of code typing speed.

Which languages can I practice?

You can practice JavaScript, Python, SQL, Java, C++, HTML/CSS, PHP, Go, and Kotlin snippets.

Is Codestroke free?

Yes. The typing test is free in modern web browsers, and you can begin as a guest without creating an account.

language directory9 Language Speed Tests & Technical ExplainerExplore

SQL query typing practice for database syntax

Practice SQL queries that read like real reporting work: joining related tables, grouping rows, filtering results, and ordering a final dataset. The aim is query fluency and accurate keystrokes, not database execution or query validation.

01SELECT clauses, filters, and ordering

02JOINs, GROUP BY, and aggregates

03CTEs and window functions

Type clause boundaries deliberately; keywords, commas, aliases, and parentheses create most of the SQL rhythm. Compare code typing scores on the leaderboard.

CPM vs WPM in CodeCode snippets contain symbols, brackets, and short tokens. CPM (Characters Per Minute) measures every keypress accurately, while WPM equals CPM divided by 5.
Real Snippets & DurationsPractice 30s, 60s, or 120s sessions with real language syntax across 9 programming languages in guest mode or with optional account sync.