Query Terminal
Typing Time: 0:00
Live Quality Score: 100/100
CTRL + SPACE Enable Autocomplete
THROUGHPUT
0 rows/s
LATENCY
0 ms
IO VOLUME
0 records
ENGINE RANKING
Analyzing
Performance bottlenecks detected! Query score is 100/100.
Comments on this shared query
Commit a statement above to populate the data grid.
Showing of rows
MySQL Code Optimization Engine
Calculated Client-side

100

SCORE
GRADE A+

Excellent! Your query follows modern database optimization best practices.

The Query Execution Plan reveals indices utilized, scan counts, and estimated overhead costs for the current instruction set.
RELATIVE SCAN COST BY TABLE Based on EXPLAIN's estimated rows × filtered %
Walks a single-statement SELECT through MySQL's logical execution order — FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT — so you can see the intermediate row set at each stage. Complex nested subqueries aren't supported.
This query can't be stepped through (only single-statement SELECTs are supported). Run a plain SELECT to use the stepper.
Running stage preview...
Tables in the connected database, with foreign key relationships. Solid arrows are real FOREIGN KEY constraints; dashed arrows are inferred from column naming (e.g. emp_idemployee) when no formal constraint exists.
Loading schema diagram...
Build up to 4 visuals from this result set. Add slicers or click a chart to drill down — every visual and the results table stay in sync.
DATA PREVIEW
PIVOT / CROSS-TAB TABLE
Full Python, running entirely in your browser via Pyodide (WebAssembly) — nothing is sent to any server. If you've run a SQL query, its result set is available as a pandas DataFrame named df.
ENV NOT LOADED
Starting up...
df not loaded yet — run a SQL query or upload a CSV
CTRL + ENTER Run CTRL + SPACE Autocomplete
OUTPUT
SESSION HISTORY
No Python code run yet this session.
State Student Started At (IST) Latency Typing Time Records Error Details Logic Snippet Notes Options
Showing 0-0 of 0 records
Page / 1
This page explains every control in the ANALYTICS tab, so you can practice the same concepts Power BI teaches — without needing Power BI.

At the top of the ANALYTICS tab, pick any table from the "Load a table directly" dropdown, set a row limit, and click LOAD TABLE. This runs a simple SELECT * FROM table LIMIT N behind the scenes and drops the result straight into the Analytics tab — the Data Preview table and a default chart appear immediately, with zero SQL required. You can still edit the generated query in the editor afterwards if you want to filter or join before analyzing.

The Data Preview table shows the raw rows currently in play (after any slicers/drill-downs are applied), right inside Analytics — no need to flip back to the Results tab. Toggle "Highlight values" to turn on conditional formatting: every fully-numeric column is shaded on a red→green scale from its lowest to highest visible value, the same idea as Excel/Power BI color scales.

GROUP BY picks 1-3 columns to bucket your rows by (hold Ctrl to select more than one — e.g. Region + Category groups by every combination of the two). AGGREGATION decides how the chosen MEASURES are summarized per group: SUM, AVERAGE, COUNT, MINIMUM, or MAXIMUM — or "None" to plot every raw row ungrouped. This mirrors exactly what Group By + a measure aggregation does in Power BI or a SQL GROUP BY clause.

SORT reorders your chart's categories by the first measure's value (ascending or descending). TOP N trims the chart to only the strongest (or weakest, combined with ascending sort) N categories — e.g. "Top 5 products by revenue," a very common real-world reporting task.

ADD SLICER lets you filter by picking specific values from any column via checkboxes — exactly like a Power BI slicer visual. Drill-down is the same idea one click away: click any bar/slice/point on a chart to instantly filter every visual and the Data Preview to just that group; click it again to clear the filter. Active filters show as removable chips above the charts.

Build a new numeric column from two existing ones with a simple formula (NewCol = ColumnA operator ColumnB). This is the same concept as a Power BI "New Measure" or Excel formula column — the result becomes selectable as a measure everywhere else in Analytics (charts, pivot, Quick Insights).

Trendline overlays a dashed best-fit line over a Bar/Line/Area chart, showing the overall direction of your data — a basic forecasting concept. Combo chart plots your first measure as bars and your second as a line on its own right-hand axis, useful for comparing two measures on very different scales (e.g. Revenue vs. Growth %). Combo requires selecting exactly 2 measures.

Pick "Scatter Plot" with exactly 2 measures to plot every row as a point (first measure = X, second = Y). Above the chart you'll see the Pearson correlation coefficient (r), from -1 (perfect negative relationship) to +1 (perfect positive relationship), labeled Strong/Moderate/Weak/Negligible — the standard way analysts check if two numbers move together.

Pick a Rows column, a Columns column, and a Value measure + aggregation, then click GO. This builds a matrix table (like an Excel PivotTable or Power BI Matrix visual) showing every Rows × Columns combination's aggregated value, with row totals — a different, often clearer way to explore two-dimensional data than a chart.

Automatically computed for every numeric column in your current (filtered) data: Minimum, Maximum, Average, Median, Standard Deviation, and Null count — the descriptive statistics an analyst checks first before building any chart, updated live as you slice/drill down.

Click ADD VISUAL to build up to 4 charts side by side, each independently configured, sharing the same slicers/drill-down — like building a real Power BI report page with multiple visuals. Use the button on any chart card to export it as a PNG image, and to remove a visual (at least one must remain).
Ask general SQL concept questions — e.g. "what is a JOIN", "explain GROUP BY". This chat is independent of your database/query editor.
Ask your first SQL question below.
Ask general Python concept questions — e.g. "what is a list comprehension", "explain pandas groupby". This chat is independent of the Python Lab editor.
Ask your first Python question below.