Grouping and Ordering
Turn on enableGrouping for a group button in each header and enableColumnOrdering to drag headers. Click a group row to expand it. aggregate on a column shows a sum, mean, min, max, count or your own function on the group rows.
New Jersey (2)
31.5
109411
Tennessee (1)
24.0
140351
Nevada (1)
34.0
141314
Pennsylvania (3)
30.7
281403
Alaska (1)
55.0
149516
Wyoming (2)
39.0
199802
Hawaii (1)
52.0
47405
Oregon (2)
57.5
168407
Arizona (1)
51.0
161033
Oklahoma (2)
56.0
279431
Minnesota (2)
44.0
309001
Connecticut (2)
39.0
236928
South Dakota (1)
50.0
162390
Maine (1)
47.0
136585
Texas (1)
33.0
89583
Wisconsin (3)
53.3
388178
New Hampshire (1)
38.0
154311
Nebraska (2)
45.5
128843
Virginia (1)
29.0
158875
Michigan (1)
46.0
87840
Vermont (2)
53.5
99481
New York (2)
46.5
280722
Delaware (1)
38.0
189794
Kentucky (1)
38.0
170213
Washington (1)
65.0
151234
North Dakota (1)
64.0
98947
Colorado (1)
25.0
154203
27 of 40
<script lang="ts"> import { MaterialHeadlessTable, type HeadlessColumnDef } from 'material-svelte-headless-table'; import { type Person, makeData } from '../data/makeData';
const columns: HeadlessColumnDef<Person>[] = [ { accessor: 'state', header: 'State' }, { accessor: 'firstName', header: 'First Name' }, { accessor: 'age', header: 'Average age', aggregate: 'mean', aggregateFormat: (value) => value.toFixed(1) }, { accessor: 'salary', header: 'Total salary', aggregate: 'sum', align: 'end' }, ];
const data = makeData(40);</script>
<MaterialHeadlessTable {columns} {data} enableColumnOrdering enableGrouping enablePagination={false} initialState={{ grouping: ['state'] }}/>