Step 12 of 18 of the SQL tutorial. An aggregate reads many rows and returns one value, and with GROUP BY it returns one per group. The IR peaks split into two kinds: 2492 bands reported by the supplier and 1971 picked from the absorbance at build time. Their means sit 168.5 cm⁻¹ apart — 1702.3 against 1870.8 — because a picker finds weak bands in the fingerprint region that a written list leaves out. Wrap a column in ROUND to keep a printed table readable.
It opens on the query SELECT p.source, COUNT(*) AS nb_peaks, ROUND(MIN(p.wavenumber), 1) AS lowest, ROUND(MAX(p.wavenumber), 1) AS highest, ROUND(AVG(p.wavenumber), 1) AS mean FROM ir_peaks p GROUP BY p.source, which you can run and change in place.
Ask the same question of a chemical dataset in SQL and in Mango and compare the two answers. The database is a SQLite file your browser downloads once and queries locally, so nothing you write ever leaves your machine — which is also why the tool needs JavaScript.