> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dynamosql.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SQL Reference Overview

> What SQL DynamoSQL supports today.

DynamoSQL implements a substantial subset of ANSI SQL targeting DynamoDB and CSV backends. The engine is **read-only** — it supports `SELECT` queries only. There is no `INSERT`, `UPDATE`, `DELETE`, or DDL.

## Supported Feature Categories

| Category                                                                     | Reference                                                             |
| ---------------------------------------------------------------------------- | --------------------------------------------------------------------- |
| SELECT, double-quoted identifiers, column aliases, DISTINCT, ORDER BY, LIMIT | [SELECT](/sql-reference/select)                                       |
| Single tables, JOINs, derived tables, CTEs as sources                        | [FROM and JOINs](/sql-reference/from-and-joins)                       |
| Comparisons, BETWEEN, IN, EXISTS, LIKE, IS NULL                              | [WHERE Predicates](/sql-reference/where-predicates)                   |
| GROUP BY, HAVING, GROUPING SETS, ROLLUP, CUBE, aggregates                    | [Grouping and Aggregation](/sql-reference/grouping-and-aggregation)   |
| WITH clauses, scalar subqueries, correlated subqueries                       | [Subqueries and CTEs](/sql-reference/subqueries-and-ctes)             |
| UNION, UNION ALL, INTERSECT, EXCEPT                                          | [Set Operations](/sql-reference/set-operations)                       |
| Arithmetic, bitwise, string, CASE, COALESCE                                  | [Expressions and Operators](/sql-reference/expressions-and-operators) |
| ABS, CONCAT, SUBSTRING, IF, UUID, aggregates                                 | [Functions](/sql-reference/functions)                                 |

Unsupported features — including window functions, INSERT/UPDATE/DELETE, recursive CTEs, and date/time functions — are listed on the [Limitations](/sql-reference/limitations) page.

## Quick Example

```sql theme={null}
WITH recent_orders AS (
  SELECT
    o.customer_id,
    o.total,
    o.status,
    c.name AS customer_name
  FROM myschema.orders AS o
  INNER JOIN myschema.customers AS c ON o.customer_id = c.id
  WHERE o.status = 'shipped'
)
SELECT
  customer_name,
  COUNT(*) AS order_count,
  SUM(total) AS total_spent
FROM recent_orders
GROUP BY customer_name
HAVING SUM(total) > 500
ORDER BY total_spent
LIMIT 20
```

This query demonstrates a CTE, an INNER JOIN, WHERE filtering, GROUP BY with an aggregate, HAVING, ORDER BY, and LIMIT — all supported today.
