SmartQueryTools

Aggregate CSV Files Online

Group and aggregate CSV files by any column directly in your browser. Calculate sum, average, min, max, and count for any numeric column — no upload required.

How to aggregate CSV files

  1. Drop your file onto the upload area. The first column is chosen as the Group by column, and every numeric column is set to Sum.
  2. Pick the Group by column. The dropdown shows each column's type. One column is used, and each distinct value becomes one output row.
  3. For each other column, click one function: Sum, Avg, Min, Max or Count. Click the dash to leave a column out.
  4. Click Run Aggregation. The result shows the number of groups, sorted by the group value.
  5. Download the summary table in the same format as your file.

Your file is processed locally in your browser and is never uploaded. The free limit is 50 MB per file; larger files work if your device has the memory for them.

Worked example

A facilities team exports monthly electricity readings for three sites and wants one line per site for the quarterly report.

Input (CSV)

site,month,kwh,cost
Depot North,2026-01,1240.5,310.13
Depot North,2026-02,1102,275.5
Head Office,2026-01,860.25,215.06
Head Office,2026-02,912.75,228.19
Depot South,2026-01,640,160

Settings

  • Group by: site
  • month: Count
  • kwh: Sum (the default for numeric columns)
  • cost: Avg

Result

sitemonth_countkwh_sumcost_avg
Depot North22342.5292.815
Depot South1640160
Head Office21773221.625

Five readings collapse to one row per site, sorted alphabetically. Each output column is named after its source and function, such as kwh_sum. Count on month counts the non-empty values, so Depot South shows one month of data. Avg is not rounded, so 292.815 keeps all its decimals. Run Round Numbers on the result if needed.

Working with CSV files

Which columns can be summed depends on the types inferred when the CSV loads. A column with a currency sign, thousands separators or a text value like "n/a" is typed as text. It is not set to Sum by default, and picking Sum or Avg for it stops the run with an error. Min and Max still work on text but compare alphabetically, so "900" sorts after "1,200". Clean the column with Find & Replace, then cast it to a number before aggregating.

Empty CSV fields are NULL and are ignored by every function. Avg divides by the number of non-empty values, not the number of rows, and Count on a column counts only its non-empty cells. Rows with an empty group value form their own group, listed last. Group keys are exact, so "North" and "north " are separate rows. Numbers written with a comma as the decimal mark, common in European exports, also load as text and need the same cleaning.

Frequently Asked Questions

Why can I not sum a CSV column that looks numeric?

It was typed as text on load, usually because of a currency sign, thousands separator or a placeholder like "n/a". Remove those with Find & Replace and cast the column to a number, then aggregate.

Where do CSV rows with an empty group value go?

They are grouped together into one row with an empty group value, sorted after all the others.

Can I group by more than one column?

No. The tool groups by a single column. To group by two, combine them first with Combine Columns, then group by the new column. The SQL workspace supports any number of GROUP BY columns.

Can I apply more than one function to the same column?

No. Each column gets one function per run. To get both the sum and the average of a column, run the tool twice, or use the SQL workspace.

Does Count count rows or values?

Values. Count on a column counts the rows in each group where that column is not empty. Pick a column with no gaps, such as an ID, to get a row count.

Related Tools