code: public static WithinGroup<Double> percentRank(Expression<?>... args) {
          return new WithinGroup<Double>(Double.class, SQLOps.PERCENTRANK2, args);
      }
docs: As an aggregate function, PERCENT_RANK calculates, for a hypothetical row r identified by the
  arguments of the function and a corresponding sort specification, the rank of row r minus 1
  divided by the number of rows in the aggregate group. This calculation is made as if the
  hypothetical row r were inserted into the group of rows over which Oracle Database is to aggregate.
  The arguments of the function identify a single hypothetical row within each aggregate group.
  Therefore, they must all evaluate to constant expressions within each aggregate group. The
  constant argument expressions and the expressions in the ORDER BY clause of the aggregate match
  by position. Therefore the number of arguments must be the same and their types must be compatible.
  
  @param args arguments
  @return percent_rank(args)