\section{汇总行与统计范围}
\label{sec:summary}
在数字、普通条、子弹图或 Heat 列设置 aggregate，然后在表格中声明一次 \key{gradsummary}。
aggregate 可选 none、count、sum、mean、min、max，默认 none。
汇总行按数字排版，不绘制图形，因此总和超过图区范围也不会被裁剪。
\begin{example}[text and listing,sidebyside=false]{有效观测均值与总耗时}
\begin{center}
\begin{gradtable}[align=c,header align=c,style=academic,theme=teal,width=\linewidth]
  \gradcolumn{name}{Method}
  \gradcolumn[type=bar,aggregate=mean,mark=both,
    options={max=100}]{score}{Score}
  \gradcolumn[type=number,aggregate=sum,
    options={precision=0,unit={\,ms}}]{time}{Time}
  \gradrow{A,72,20}\gradrow{B,90,30}\gradrow{Missing,NA,0}
  \gradsummary{Summary}
\end{gradtable}
\end{center}
\end{example}
本例得分均值为 81，耗时总和为 50。count 统计有效数值个数，显示整数且不附加单位或计算百分比。
缺失值被跳过，真实零仍参与统计；全缺失或没有数据时 count、sum 为 0，mean、min、max 显示缺失。
\subsection{显示行与完整数据}
\key{\gradsummary[scope=visible|data]{标签}} 默认采用 visible，在 CSV 筛选、排序及 limit 后统计显示行。
data 使用完整导入数据；手写表格两种范围相同。标签显示在第一个文本列；纯数字表格需采用空标签。
文本及复合图形列不支持 aggregate，未选择统计量的列在汇总行中留空。
\begin{example}[text and listing,sidebyside=false]{只显示两行，汇总完整数据}
\gradbarsloadcsv{results}{docs/data/results.csv}
\begin{center}
\begin{gradtable}[align=c,header align=c,style=compact,data=results,width=\linewidth,
  sort=score,order=descending,limit=2]
  \gradcolumn[source=Model]{name}{Method}
  \gradcolumn[type=number,source=Score,aggregate=mean]{score}{Score}
  \gradcolumn[type=number,width=18mm,source=Latency,aggregate=count]{n}{Latency}
  \gradsummary[scope=data]{All data}
\end{gradtable}
\end{center}
\end{example}
完整得分均值为 61.675，有效延迟观测为 4 个。汇总不会影响排名、自动尺度或数据行数量。
数字列沿用对齐设置，普通条及子弹图的汇总值靠右，Heat 汇总值居中。
精度、单位和数字格式沿用列配置；汇总内容在列宽分配之前测量。
跨页时只在末尾显示一次，与最后一条数据保持在同页。
\key{summary color} 控制底色，auto 跟随表格主题，空值关闭底色；summary font 设置字体，默认文字和数学均加粗。


\subsection{每组汇总与独立统计范围}
\key{group summary=true} 在每个显示组末尾添加一条数字摘要，复用各列 aggregate，
不必同时声明整表 \key{gradsummary}。group summary label 默认 Summary，显示在第一个文本列。
\key{group summary scope=visible|data} 默认 visible；data 统计该组完整导入数据，包含被筛选或限行排除的成员。
没有显示行的组不产生标题或摘要。手写组两种范围相同；缺失、零值和格式化规则沿用整表汇总。
组摘要与整表摘要的 scope 独立，颜色和字体共用 summary color、summary font。
两种摘要都不参与排序、排名或自动尺度；整表摘要在最后一个组摘要之后显示。
\begin{example}[text and listing,sidebyside=false]{完整案例：分组实验结果}
\gradscale{change}{min=-10,max=10}
\gradbarsloadcsv{experiments}{docs/data/experiments.csv}
\begin{center}
\begin{gradtable}[align=c,header align=c,data=experiments,width=\linewidth,theme=violet,
  group by=batch,group summary=true,group summary label={Group summary},
  sort keys={change/descending,duration/ascending}]
  \gradcolumn[source=Run]{run}{Run}
  \gradcolumn[source=Batch]{batch}{Batch}
  \gradcolumn[type=heat,source=Change,aggregate=mean,scale group=change,
    options={heat palette=diverging,heat center=0}]{change}{Change}
  \gradcolumn[type=number,source=Duration,aggregate=count]{duration}{Duration}
  \gradsummary{All visible}
\end{gradtable}
\end{center}
\end{example}
两个组的 Change 均值分别为 $-1$ 和 3；Duration 列摘要为有效观测数量，均为 2。
整表 Change 均值为 1，有效 Duration 观测共 4 个。
