Formulas for

Explain SQL

Data Processing5 credits/cellSheets · ExcelNew
=VERVE("sqlexplainer", "SELECT u.name, COUNT(o.id) as order_count FROM users u LEFT JOIN orders o ON u.id = o.user_id WHERE u.created_at > '2024-01-01' GROUP BY u.id HAVING COUNT(o.id) > 5 ORDER BY order_count DESC")

Document queries by the row. =VERVE("sqlexplainer", A2) turns each SQL query into a plain-English explanation — Google Sheets or Excel.

It's one of 250+ live sources you reach with a single =VERVE() function — served from APIVerve's production data engine, billed at 5 credits per resolved cell, and refreshed on whatever cadence you set. No API keys to wrangle, no scripts, no exports.

A real example — the input you type, and the values you can pull from it. Click any cell to see the formula behind it.

sqlexplainer.xlsxsample data
B2fx=VERVE("sqlexplainer", A2, "explanation")
A
B
C
D
1
Query
Explanation
Operation
Complexity
2
SELECT u.name, COUNT(o.id) as order_count FROM users u LEFT JOIN orders o ON u.id = o.user_id WHERE u.created_at > '2024-01-01' GROUP BY u.id HAVING COUNT(o.id) > 5 ORDER BY order_count DESC
This SQL query retrieves the names of user…
SELECT
moderate
3
4
click any cell to see its formula5 credits / cell

One value per row

Fill =VERVE("sqlexplainer", "SELECT * FROM users WHERE age > 18") down a column and Explain SQL returns a result for every row — a batch of live values in a single drag, no code.

Enrich data in place

Add Explain SQL beside a table you already have to append its output right where your data lives, then sort, filter, or chart on it.

Stays fresh on its own

Set the sheet to refresh on a schedule and the explain sql values keep themselves current without anyone re-typing.

The same function works in both apps — install once, sign in with your key, and type it into any cell.

Google SheetsAdd-on

Install from the Workspace Marketplace, then drop the formula into a cell. Autocomplete suggests the source and its fields.

=VERVE("sqlexplainer", "SELECT u.name, COUNT(o.id) as order_count FROM users u LEFT JOIN orders o ON u.id = o.user_id WHERE u.created_at > '2024-01-01' GROUP BY u.id HAVING COUNT(o.id) > 5 ORDER BY order_count DESC")
Microsoft ExcelAdd-in

Same source, same arguments, same key — in Excel on desktop, the web, or mobile. Excel namespaces it as VERVE.CALL. Drag to fill a whole column.

=VERVE.CALL("sqlexplainer", "SELECT u.name, COUNT(o.id) as order_count FROM users u LEFT JOIN orders o ON u.id = o.user_id WHERE u.created_at > '2024-01-01' GROUP BY u.id HAVING COUNT(o.id) > 5 ORDER BY order_count DESC")

Tune the result by adding name=value before the field argument — in any order. Leave one out and its default applies.

  • detailPremium

    Explanation detail level: brief, standard, or detailed

    =VERVE("sqlexplainer", "SELECT u.name, COUNT(o.id) as order_count FROM users u LEFT JOIN orders o ON u.id = o.user_id WHERE u.created_at > '2024-01-01' GROUP BY u.id HAVING COUNT(o.id) > 5 ORDER BY order_count DESC", "detail", "standard")

Add a field name as the last argument to land just that value in the cell.

  • Explanation
    =VERVE("sqlexplainer", "SELECT u.name, COUNT(o.id) as order_count FROM users u LEFT JOIN orders o ON u.id = o.user_id WHERE u.created_at > '2024-01-01' GROUP BY u.id HAVING COUNT(o.id) > 5 ORDER BY order_count DESC", "field", "explanation")
  • Operation
    =VERVE("sqlexplainer", "SELECT u.name, COUNT(o.id) as order_count FROM users u LEFT JOIN orders o ON u.id = o.user_id WHERE u.created_at > '2024-01-01' GROUP BY u.id HAVING COUNT(o.id) > 5 ORDER BY order_count DESC", "field", "operation")
  • Tables
    =VERVE("sqlexplainer", "SELECT u.name, COUNT(o.id) as order_count FROM users u LEFT JOIN orders o ON u.id = o.user_id WHERE u.created_at > '2024-01-01' GROUP BY u.id HAVING COUNT(o.id) > 5 ORDER BY order_count DESC", "field", "tables")
  • ComplexityPremium
    =VERVE("sqlexplainer", "SELECT u.name, COUNT(o.id) as order_count FROM users u LEFT JOIN orders o ON u.id = o.user_id WHERE u.created_at > '2024-01-01' GROUP BY u.id HAVING COUNT(o.id) > 5 ORDER BY order_count DESC", "field", "complexity")

Premium marks data included on paid plans. On the Free plan a marked field is withheld and a marked input is ignored — either way the cell reads #PREMIUM(name) instead of a value, so a gated answer can never be mistaken for a real one. Everything unmarked works on every plan. Compare plans

Explain SQL, answered

Everything you need to wire it into a sheet.

How do I pull Explain SQL into a spreadsheet?
Install the VerveSheets add-on, sign in with your key, and type =VERVE("sqlexplainer", "SELECT * FROM users WHERE age > 18") into any cell. The same function works in Google Sheets and Excel — no scripts, no API wiring.
How many credits does each Explain SQL cell cost?
Each resolved cell costs 5 credits. Filling a column of ten rows costs ten times that; a cell only re-bills when it actually refreshes, so a static sheet doesn't keep charging.
Can I fill a whole column at once?
Yes. Reference a range instead of a single cell — e.g. point Explain SQL at A2:A50 — and it returns a value for every row in one call, or just drag =VERVE("sqlexplainer", "SELECT * FROM users WHERE age > 18") down like any spreadsheet function.
Does Explain SQL work in Excel as well as Google Sheets?
Yes. It's the same =VERVE() function with the same arguments and the same key in both — build a sheet in one and it behaves identically in the other.
How current is the data?
Explain SQL is served live from APIVerve's production data engine, and cells recalculate on the refresh cadence you choose — every open, hourly, or every 30 minutes.
Where does the data come from, and what shows on my bill?
VerveSheets runs on APIVerve, our production data engine; Explain SQL is one of 300+ sources on the same key. Invoices and card statements show APIVERVE.

Put Explain SQL in your next spreadsheet. Add the extension, paste the formula, and the cell keeps itself current.

Scaling up?

Volume pricing, custom SLAs, and dedicated support for high-traffic teams.

Contact sales