WITH T AS ( SELECt RANK() OVER (ORDER BY ID) Rank, P.Field1, P.Field2, P.Value1, ... FROM P)SELECt (Rank - 1) / 1000 GroupID, AVG(...)FROM TGROUP BY ((Rank - 1) / 1000);
这样的事情应该会让您入门。如果您可以提供实际的架构,我可以进行适当的更新。

WITH T AS ( SELECt RANK() OVER (ORDER BY ID) Rank, P.Field1, P.Field2, P.Value1, ... FROM P)SELECt (Rank - 1) / 1000 GroupID, AVG(...)FROM TGROUP BY ((Rank - 1) / 1000);
这样的事情应该会让您入门。如果您可以提供实际的架构,我可以进行适当的更新。