Collectable<T>public interface Window<T> extends Collectable<T>
Window functions as exposed in this type are inspired by their counterparts in SQL. They include:
| Function | Description | 
|---|---|
rowNumber() | The distinct row number of the row within
 the partition, counting from 0. | 
 
rank() | The rank with gaps of a row within the partition,
 counting from 0. | 
 
denseRank() | The rank without gaps of a row within the
 partition, counting from 0. | 
 
percentRank() | Relative rank of a row:
 rank() / Collectable.count(). | 
 
ntile(long) | Divides the partition in equal buckets and
 assigns values between 0 and buckets - 1. | 
 
lead() | Gets the value after the current row. | 
lag() | Gets the value before the current row. | 
firstValue() | Gets the first value in the window. | 
lastValue() | Gets the last value in the window. | 
nthValue(long) | Gets the nth value in the window,
 counting from 0. | 
 
 Note: In Java, indexes are always counted from
 0, not from 1 as in SQL. This means that the above
 ranking functions also rank rows from zero. This is particularly true for:
 
Seq or from Agg is also
 available as an aggregate function on the window. For instance,
 Collectable.count() is the same as calling Seq.count() on
 window()| Modifier and Type | Method | Description | 
|---|---|---|
long | 
denseRank() | 
 The dense rank of the current row within the partition. 
 | 
java.util.Optional<T> | 
firstValue() | 
 The first value in the window. 
 | 
<U> java.util.Optional<U> | 
firstValue(java.util.function.Function<? super T,? extends U> function) | 
 The first value in the window. 
 | 
java.util.Optional<T> | 
lag() | 
 The previous value in the window. 
 | 
java.util.Optional<T> | 
lag(long lag) | 
 The previous value by  
lag in the window. | 
java.util.Optional<T> | 
lastValue() | 
 The last value in the window. 
 | 
<U> java.util.Optional<U> | 
lastValue(java.util.function.Function<? super T,? extends U> function) | 
 The last value in the window. 
 | 
java.util.Optional<T> | 
lead() | 
 The next value in the window. 
 | 
java.util.Optional<T> | 
lead(long lead) | 
 The next value by  
lead in the window. | 
java.util.Optional<T> | 
nthValue(long n) | 
 The nth value in the window. 
 | 
<U> java.util.Optional<U> | 
nthValue(long n,
        java.util.function.Function<? super T,? extends U> function) | 
 The nth value in the window. 
 | 
long | 
ntile(long buckets) | 
 The bucket number ("ntile") of the current row within the partition. 
 | 
static <T> WindowSpecification<T> | 
of() | 
|
static <T> WindowSpecification<T> | 
of(long lower,
  long upper) | 
|
static <T> WindowSpecification<T> | 
of(java.util.Comparator<? super T> orderBy) | 
|
static <T> WindowSpecification<T> | 
of(java.util.Comparator<? super T> orderBy,
  long lower,
  long upper) | 
|
static <T,U> WindowSpecification<T> | 
of(java.util.function.Function<? super T,? extends U> partitionBy) | 
|
static <T,U> WindowSpecification<T> | 
of(java.util.function.Function<? super T,? extends U> partitionBy,
  long lower,
  long upper) | 
|
static <T,U> WindowSpecification<T> | 
of(java.util.function.Function<? super T,? extends U> partitionBy,
  java.util.Comparator<? super T> orderBy) | 
|
static <T,U> WindowSpecification<T> | 
of(java.util.function.Function<? super T,? extends U> partitionBy,
  java.util.Comparator<? super T> orderBy,
  long lower,
  long upper) | 
|
double | 
percentRank() | 
 The precent rank of the current row within the partition. 
 | 
long | 
rank() | 
 The rank of the current row within the partition. 
 | 
long | 
rowNumber() | 
 The row number of the current row within the partition. 
 | 
T | 
value() | 
 The value of the current row in the window. 
 | 
Seq<T> | 
window() | 
 Stream all elements in the window. 
 | 
allMatch, anyMatch, avg, avg, avgDouble, avgInt, avgLong, bitAnd, bitAnd, bitAndInt, bitAndLong, bitOr, bitOr, bitOrInt, bitOrLong, collect, collect, collect, collect, collect, collect, collect, collect, collect, collect, collect, collect, collect, collect, collect, collect, commonPrefix, commonSuffix, count, count, countDistinct, countDistinct, countDistinctBy, countDistinctBy, max, max, max, max, maxAll, maxAll, maxAll, maxAll, maxAllBy, maxAllBy, maxBy, maxBy, median, median, medianBy, medianBy, min, min, min, min, minAll, minAll, minAll, minAll, minAllBy, minAllBy, minBy, minBy, mode, modeAll, modeAllBy, modeBy, noneMatch, percentile, percentile, percentileBy, percentileBy, sum, sum, sumDouble, sumInt, sumLong, toCollection, toList, toList, toMap, toMap, toSet, toSet, toString, toString, toUnmodifiableList, toUnmodifiableSetstatic <T> WindowSpecification<T> of()
static <T> WindowSpecification<T> of(long lower, long upper)
static <T> WindowSpecification<T> of(java.util.Comparator<? super T> orderBy)
static <T> WindowSpecification<T> of(java.util.Comparator<? super T> orderBy, long lower, long upper)
static <T,U> WindowSpecification<T> of(java.util.function.Function<? super T,? extends U> partitionBy)
static <T,U> WindowSpecification<T> of(java.util.function.Function<? super T,? extends U> partitionBy, long lower, long upper)
static <T,U> WindowSpecification<T> of(java.util.function.Function<? super T,? extends U> partitionBy, java.util.Comparator<? super T> orderBy)
static <T,U> WindowSpecification<T> of(java.util.function.Function<? super T,? extends U> partitionBy, java.util.Comparator<? super T> orderBy, long lower, long upper)
T value()
long rowNumber()
 // (1, 2, 3, 4, 5)
 Seq.of(1, 2, 4, 2, 3).window().map(w -> w.rowNumber());
 long rank()
 // (1, 2, 2, 4, 5)
 Seq.of(1, 2, 2, 3, 4).window(naturalOrder()).map(w -> w.rank());
 long denseRank()
 // (1, 2, 2, 3, 4)
 Seq.of(1, 2, 2, 3, 4).window(naturalOrder()).map(w -> w.denseRank());
 double percentRank()
 // (0.0, 0.25, 0.25, 0.75, 1.0)
 Seq.of(1, 2, 2, 3, 4).window(naturalOrder()).map(w -> w.percentRank());
 long ntile(long buckets)
 // (0, 0, 1, 1, 2)
 Seq.of(1, 2, 2, 3, 4).window(naturalOrder()).map(w -> w.ntile(3));
 java.util.Optional<T> lead()
 This is the same as calling lead(1)
 
 // (2, 2, 3, 4, empty)
 Seq.of(1, 2, 2, 3, 4).window().map(w -> w.lead());
 java.util.Optional<T> lead(long lead)
lead in the window.
 
 // (2, 2, 3, 4, empty)
 Seq.of(1, 2, 2, 3, 4).window().map(w -> w.lead());
 java.util.Optional<T> lag()
 This is the same as calling lag(1)
 
 // (empty, 1, 2, 2, 3)
 Seq.of(1, 2, 2, 3, 4).window().map(w -> w.lag());
 java.util.Optional<T> lag(long lag)
lag in the window.
 
 // (empty, 1, 2, 2, 3)
 Seq.of(1, 2, 2, 3, 4).window().map(w -> w.lag());
 java.util.Optional<T> firstValue()
 // (1, 1, 1, 1, 1)
 Seq.of(1, 2, 4, 2, 3).window().map(w -> w.firstValue());
 <U> java.util.Optional<U> firstValue(java.util.function.Function<? super T,? extends U> function)
 // (1, 1, 1, 1, 1)
 Seq.of(1, 2, 4, 2, 3).window().map(w -> w.firstValue());
 java.util.Optional<T> lastValue()
 // (3, 3, 3, 3, 3)
 Seq.of(1, 2, 4, 2, 3).window().map(w -> w.lastValue());
 <U> java.util.Optional<U> lastValue(java.util.function.Function<? super T,? extends U> function)
 // (3, 3, 3, 3, 3)
 Seq.of(1, 2, 4, 2, 3).window().map(w -> w.lastValue());
 java.util.Optional<T> nthValue(long n)
 // (4, 4, 4, 4, 4)
 Seq.of(1, 2, 4, 2, 3).window().map(w -> w.nthValue(2));
 <U> java.util.Optional<U> nthValue(long n,
                                   java.util.function.Function<? super T,? extends U> function)
 // (4, 4, 4, 4, 4)
 Seq.of(1, 2, 4, 2, 3).window().map(w -> w.nthValue(2));
 Copyright © 2018. All rights reserved.