You can use \pgfplotstablevertcat{<newmacro>}{<filename>} to concatenate your datatables, then use \pgfplotstablesort{<newmacro>}{<table macro>} to sort the concatenated table, and get the largest (or smallest) value by extracting the first element of the sorted table using \pgfplotstablegetelem{<row>}{<col>}\of{<table macro>}.
Below are two scripts, \findmax and \findmin that take a comma separated list of filenames, concatenate the tables in those files and return the maximum/minimum.

\documentclass{article}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepackage{filecontents}
\newcommand{\findmax}[1]{
\pgfplotsforeachungrouped \table in {#1} {%
\pgfplotstablevertcat{\concatenated}{\table}%
}%
\pgfplotstablesort[sort key={1},sort cmp={float >}]{\sorted}{\concatenated}%
\pgfplotstablegetelem{0}{1}\of{\sorted}%
\let\ymax=\pgfplotsretval%
}
\newcommand{\findmin}[1]{
\pgfplotsforeachungrouped \table in {#1} {%
\pgfplotstablevertcat{\concatenated}{\table}%
}%
\pgfplotstablesort[sort key={1},sort cmp={float <}]{\sorted}{\concatenated}%
\pgfplotstablegetelem{0}{1}\of{\sorted}%
\let\ymin=\pgfplotsretval%
}
\begin{filecontents}{dataA.dat}
1 5
2 3
3 6
4 4
5 0
6 1
\end{filecontents}
\begin{filecontents}{dataB.dat}
1 2
2 3
3 2
4 2
5 3
6 2
\end{filecontents}
\begin{filecontents}{dataC.dat}
1 -2
2 0
3 -1
4 -1
5 -2
6 0
\end{filecontents}
\begin{document}
\findmax{dataA.dat,dataB.dat,dataC.dat}
\findmin{dataA.dat,dataB.dat,dataC.dat}
\pgfplotstabletypeset{dataA.dat} \hfill \pgfplotstabletypeset{dataB.dat} \hfill \pgfplotstabletypeset{dataC.dat} \hspace{4cm}\\[0.5cm]
\noindent
Maximum value: \ymax\\
Minimum value: \ymin\\[0.5cm]
\pgfplotsset{ymin=\ymin,ymax=\ymax,width=3cm,scale only axis}
\begin{tikzpicture}
\begin{axis}[at={(0,0)}]
\addplot table {dataA.dat};
\end{axis}
\begin{axis}[at={(4cm,0)}]
\addplot table {dataB.dat};
\end{axis}
\begin{axis}[at={(8cm,0)}]
\addplot table {dataC.dat};
\end{axis}
\end{tikzpicture}
\end{document}