I have been thinking - a beer always helps, well, three actually - and I believe your requirement can be done in one SQL for all values. I hope the table is not too big otherwise the solution may not be that efficient. It involves a three-level nested query.
The innermost subquery extracts a list of valid IDs, one for each different value of AnalysisColumn.
Code:
SELECT MIN(ID)
FROM tblName
GROUP BY AnalysisColumn;
You could of course use MAX or even FIRST and ORDER BY if you are interested in which row to select as your 'standard.'
The intermediate query appends the column values.
Code:
SELECT B.AnalysisColumn, B.Column5, B.Column6, ...
FROM tblName AS B
INNER JOIN
(SELECT MIN(ID)
FROM tblName
GROUP BY AnalysisColumn) AS C
ON B.ID = C.ID;
Now put this intermediate query inside the outer query.
Code:
SELECT X.Column5 - A.Column5 AS C5, ...
FROM tblName AS A
INNER JOIN
(SELECT B.AnalysisColumn, B.Column5, B.Column6, ...
FROM tblName AS B
INNER JOIN
(SELECT MIN(ID)
FROM tblName
GROUP BY AnalysisColumn) AS C
ON B.ID = C.ID) AS X
ON A.AnalysisColumn = X.AnalysisColumn;
Obviously I have not tested this.