pub struct NthValue { /* private fields */ }
Expand description
nth_value expression
Implementations§
Source§impl NthValue
impl NthValue
Sourcepub fn first(
name: impl Into<String>,
expr: Arc<dyn PhysicalExpr>,
data_type: DataType,
ignore_nulls: bool,
) -> NthValue
pub fn first( name: impl Into<String>, expr: Arc<dyn PhysicalExpr>, data_type: DataType, ignore_nulls: bool, ) -> NthValue
Create a new FIRST_VALUE window aggregate function
Sourcepub fn last(
name: impl Into<String>,
expr: Arc<dyn PhysicalExpr>,
data_type: DataType,
ignore_nulls: bool,
) -> NthValue
pub fn last( name: impl Into<String>, expr: Arc<dyn PhysicalExpr>, data_type: DataType, ignore_nulls: bool, ) -> NthValue
Create a new LAST_VALUE window aggregate function
Sourcepub fn nth(
name: impl Into<String>,
expr: Arc<dyn PhysicalExpr>,
data_type: DataType,
n: i64,
ignore_nulls: bool,
) -> Result<NthValue, DataFusionError>
pub fn nth( name: impl Into<String>, expr: Arc<dyn PhysicalExpr>, data_type: DataType, n: i64, ignore_nulls: bool, ) -> Result<NthValue, DataFusionError>
Create a new NTH_VALUE window aggregate function
Sourcepub fn get_kind(&self) -> NthValueKind
pub fn get_kind(&self) -> NthValueKind
Get the NTH_VALUE kind
Trait Implementations§
Source§impl BuiltInWindowFunctionExpr for NthValue
impl BuiltInWindowFunctionExpr for NthValue
Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Return a reference to Any that can be used for downcasting
Source§fn field(&self) -> Result<Field, DataFusionError>
fn field(&self) -> Result<Field, DataFusionError>
The field of the final result of evaluating this window function.
Source§fn expressions(&self) -> Vec<Arc<dyn PhysicalExpr>>
fn expressions(&self) -> Vec<Arc<dyn PhysicalExpr>>
Expressions that are passed to the
PartitionEvaluator
.Source§fn name(&self) -> &str
fn name(&self) -> &str
Human readable name such as
"MIN(c2)"
or "RANK()"
. The default
implementation returns placeholder text.Source§fn create_evaluator(
&self,
) -> Result<Box<dyn PartitionEvaluator>, DataFusionError>
fn create_evaluator( &self, ) -> Result<Box<dyn PartitionEvaluator>, DataFusionError>
Create a
PartitionEvaluator
for evaluating the function on
a particular partition.Source§fn reverse_expr(&self) -> Option<Arc<dyn BuiltInWindowFunctionExpr>>
fn reverse_expr(&self) -> Option<Arc<dyn BuiltInWindowFunctionExpr>>
Construct a new
BuiltInWindowFunctionExpr
that produces
the same result as this function on a window with reverse
order. The return value of this function is used by the
DataFusion optimizer to avoid re-sorting the data when
possible. Read moreSource§fn evaluate_args(
&self,
batch: &RecordBatch,
) -> Result<Vec<Arc<dyn Array>>, DataFusionError>
fn evaluate_args( &self, batch: &RecordBatch, ) -> Result<Vec<Arc<dyn Array>>, DataFusionError>
Source§fn get_result_ordering(&self, _schema: &Arc<Schema>) -> Option<PhysicalSortExpr>
fn get_result_ordering(&self, _schema: &Arc<Schema>) -> Option<PhysicalSortExpr>
Returns the ordering introduced by the window function, if applicable.
Most window functions don’t introduce an ordering, hence the default
value is
None
. Note that this information is used to update ordering
equivalences.Auto Trait Implementations§
impl Freeze for NthValue
impl !RefUnwindSafe for NthValue
impl Send for NthValue
impl Sync for NthValue
impl Unpin for NthValue
impl !UnwindSafe for NthValue
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more