A derived table is a subquery placed in the FROM clause, which behaves like a temporary table for the query, with a mandatory alias. It lets you aggregate and then filter or join the result. CTEs often offer a more readable way to write it.
Example
SELECT * FROM (
SELECT client_id, SUM(total) AS ca FROM commandes GROUP BY client_id
) t WHERE ca > 1000;