Focused path · SQL Analyst

SQL 50

50 original exercises selected to strengthen foundations, business analysis and window functions. They share progress with the main catalogue.

Progress0 / 500 %
Difficulty15 · 20 · 1515 beginner · 20 intermediate · 15 advanced
Estimated time18 hbased on each exercise’s estimated duration
Skills covered
Precisely define output columnsRespect the order requested by the recipientAvoid SELECT* in a query intended for reuseTranslate a business threshold into a predicate WHEREChoosing between strict superior and superior or equalProduce a repeatable order with ORDER BYEliminate duplicates with DISTINCTSort before limiting

SQL Analyst

SQL 50 is included in SQL Analyst and SQL Pro.

You can browse all 50 titles before purchase. Environments, hints and solutions remain protected according to your plan.

Choose SQL Analyst
50 exercises shown
SELECTNo account

Select the correct columns

Show only the name and price of each product.

Level : BeginnerOpen exercise
WHERE · ORDER BYNo account

Filter and sort orders

Find orders over 50 TND, from highest to lowest.

Level : BeginnerOpen exercise
DISTINCT · LIMITDiscovery

List unique categories

Display the first three unique categories in alphabetical order.

Level : BeginnerCreate a free account
NULL · COALESCEDiscovery

Replace a NULL value with COALESCE

Display clear labeling when a customer’s phone is absent.

Level : BeginnerCreate a free account
COUNT · SUM · AVGSQL Essentials

Calculate paid order indicators

Calculate the volume, total and average over a specific area.

Level : BeginnerCompare plans
GROUP BY · HAVINGSQL Essentials

Group revenue by category

Calculate totals by category and keep only the most important ones.

Level : BeginnerCompare plans
LEFT JOIN · COUNTSQL Essentials

Keep customers without orders

Count the orders of each customer without excluding new registrants.

Level : BeginnerCompare plans
BETWEENDiscovery

Filter a price range

Select an inclusive interval and check its limits.

Level : BeginnerCreate a free account
INDiscovery

Filter multiple statuses

Replace multiple OR with a readable business list.

Level : BeginnerCreate a free account
LIKEDiscovery

Search for a prefix with LIKE

Use a simple text pattern without confusing prefix and content.

Level : BeginnerCreate a free account
IS NULLDiscovery

Identify missing deliveries

Distinguish a missing date from an empty string or status.

Level : BeginnerCreate a free account
Expressions · ROUNDDiscovery

Calculate a price including tax

Transform a source price with a precise formula and alias.

Level : BeginnerCreate a free account
Text · ConcatenationDiscovery

Assemble a product label

Create a readable label from two columns.

Level : BeginnerCreate a free account
TRIM · UPPER · DISTINCTDiscovery

Normalize a list of cities

Create a clean dimension before counting customers.

Level : BeginnerCreate a free account
Dates · EXTRACTSQL Essentials

Extract the year of registration

Derive a calendar component without transforming the scope.

Level : BeginnerCompare plans
INNER JOINSQL Essentials

Connect customers and orders

Associate each order with the name of the customer who placed it.

Level : IntermediateCompare plans
CTE · CASESQL Essentials

Segment customers with a CTE

Calculate the total per customer, then transform this result into a business segment.

Level : IntermediateCompare plans
Dates · GROUP BYSQL Essentials

Calculate monthly revenue

Group together several channels over the same monthly period.

Level : IntermediateCompare plans
Dates · WHERESQL Essentials

Analyze a quarter with limits

Filter a complete period with an exclusive upper bound.

Level : IntermediateCompare plans
LEFT JOIN · HAVINGSQL Essentials

Find customers without orders

Keep the starting population and isolate the absence of activity.

Level : IntermediateCompare plans
EXISTSSQL Essentials

Test for the existence of a large order

Filter a population without duplicating it by its history.

Level : IntermediateCompare plans
JOIN · AVGSQL Essentials

Calculate the average basket per customer

Only aggregate orders that are actually paid.

Level : IntermediateCompare plans
Subquery · AVGSQL Essentials

Compare to average price

Use an aggregated value as a dynamic threshold.

Level : IntermediateCompare plans
UNIONSQL Essentials

Merge customers and prospects

Create a single list from two compatible sources.

Level : IntermediateCompare plans