Class DurationExpression.FirstValueExpression
- java.lang.Object
-
- nz.co.gregs.dbvolution.expressions.AnyExpression<B,R,D>
-
- nz.co.gregs.dbvolution.expressions.EqualExpression<B,R,D>
-
- nz.co.gregs.dbvolution.expressions.InExpression<B,R,D>
-
- nz.co.gregs.dbvolution.expressions.RangeExpression<Duration,DurationResult,DBDuration>
-
- nz.co.gregs.dbvolution.expressions.DurationExpression
-
- nz.co.gregs.dbvolution.expressions.DurationExpression.FirstValueExpression
-
- All Implemented Interfaces:
Serializable
,DBExpression
,ExpressionColumn<DBDuration>
,HasSQLString
,CanBeWindowingFunctionWithFrame<DurationExpression>
,AnyComparable<Duration,DurationResult>
,AnyResult<Duration>
,DurationResult
,EqualComparable<Duration,DurationResult>
,EqualResult<Duration>
,ExpressionCanHaveNullValues
,ExpressionHasStandardStringResult
,InComparable<Duration,DurationResult>
,InResult<Duration>
,NullCapableResult<Duration>
,RangeComparable<Duration,DurationResult>
,RangeResult<Duration>
- Enclosing class:
- DurationExpression
public static class DurationExpression.FirstValueExpression extends DurationExpression implements CanBeWindowingFunctionWithFrame<DurationExpression>
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class nz.co.gregs.dbvolution.expressions.AnyExpression
AnyExpression.CountAllExpression, AnyExpression.CountDistinctExpression, AnyExpression.CountExpression, AnyExpression.NTileExpression, AnyExpression.PercentageExpression, AnyExpression.RankExpression
-
Nested classes/interfaces inherited from class nz.co.gregs.dbvolution.expressions.DurationExpression
DurationExpression.FirstValueExpression, DurationExpression.IsExpression, DurationExpression.IsGreaterThanOrEqualExpression, DurationExpression.LagExpression, DurationExpression.LastValueExpression, DurationExpression.LeadExpression, DurationExpression.NthValueExpression
-
Nested classes/interfaces inherited from class nz.co.gregs.dbvolution.expressions.EqualExpression
EqualExpression.DBUnaryFunction<B,R extends EqualResult<B>,D extends QueryableDatatype<B>,X extends EqualExpression<B,R,D>>, EqualExpression.ModeSimpleExpression<B,R extends EqualResult<B>,D extends QueryableDatatype<B>,X extends EqualExpression<B,R,D>>, EqualExpression.ModeStrictExpression<B,R extends EqualResult<B>,D extends QueryableDatatype<B>,X extends EqualExpression<B,R,D>>
-
Nested classes/interfaces inherited from class nz.co.gregs.dbvolution.expressions.RangeExpression
RangeExpression.MedianExpression<B,R extends EqualResult<B>,D extends QueryableDatatype<B>,X extends EqualExpression<B,R,D>>, RangeExpression.UniqueRankingExpression<B,R extends EqualResult<B>,D extends QueryableDatatype<B>,X extends EqualExpression<B,R,D>>
-
-
Field Summary
-
Fields inherited from class nz.co.gregs.dbvolution.expressions.DurationExpression
DAY_SUFFIX, HOUR_SUFFIX, INTERVAL_PREFIX, MINUTE_SUFFIX, SECOND_SUFFIX
-
-
Constructor Summary
Constructors Constructor Description FirstValueExpression()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DurationExpression.FirstValueExpression
copy()
A Complete Copy Of This DBValue.boolean
isAggregator()
Returns TRUE if this expression is an Aggregator like SUM() or LEAST().WindowFunctionFramable<DurationExpression>
over()
Over creates a window function.String
toSQLString(DBDefinition db)
Produces the snippet provided by this class.-
Methods inherited from class nz.co.gregs.dbvolution.expressions.AnyExpression
ascending, asResult, count, countAll, countDistinctValues, countNotNull, createSQLForFromClause, createSQLForGroupByClause, denseRank, descending, getIncludesNull, getInnerResult, getTablesInvolved, highestFirst, highestLast, isComplexExpression, isNullSafetyTerminator, isPurelyFunctional, isWindowingFunction, lowestFirst, lowestLast, nTile, nTile, nTile, nullBoolean, nullDate, nullDateRepeat, nullDuration, nullInstant, nullInteger, nullLine2D, nullLineSegment2D, nullLocalDate, nullLocalDateTime, nullMultiPoint2D, nullNumber, nullPoint2D, nullPolygon2D, nullString, percentageRank, rank, rowNumber, runningCount, value, value, value, value, value, value, value, value, value, value, value, value, value, value, value, value, value, value, value, value, value, value, value, value, value
-
Methods inherited from interface nz.co.gregs.dbvolution.expressions.windows.CanBeWindowingFunctionWithFrame
window
-
Methods inherited from interface nz.co.gregs.dbvolution.expressions.DBExpression
createSQLForFromClause, createSQLForGroupByClause, getTablesInvolved, isComplexExpression, isPurelyFunctional, isWindowingFunction
-
Methods inherited from class nz.co.gregs.dbvolution.expressions.DurationExpression
asExpressionColumn, expression, expression, expression, firstValue, getDays, getHours, getMinutes, getQueryableDatatypeForExpressionValue, getSeconds, is, is, isBetween, isBetweenExclusive, isBetweenInclusive, isGreaterThan, isGreaterThan, isGreaterThan, isGreaterThan, isGreaterThanOrEqual, isGreaterThanOrEqual, isInCollection, isLessThan, isLessThan, isLessThan, isLessThan, isLessThanOrEqual, isLessThanOrEqual, isNot, isNot, isNotInCollection, isNotNull, isNull, lag, lag, lag, lastValue, lead, lead, lead, modeSimple, modeStrict, nthValue, nullExpression, stringResult
-
Methods inherited from class nz.co.gregs.dbvolution.expressions.EqualExpression
countIf, is, isNot
-
Methods inherited from interface nz.co.gregs.dbvolution.results.ExpressionCanHaveNullValues
getIncludesNull
-
Methods inherited from interface nz.co.gregs.dbvolution.expressions.ExpressionColumn
toExpressionColumn
-
Methods inherited from interface nz.co.gregs.dbvolution.results.InComparable
isIn
-
Methods inherited from class nz.co.gregs.dbvolution.expressions.InExpression
isIn, isIn, isIn, isNotIn, isNotIn, isNotIn
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from class nz.co.gregs.dbvolution.expressions.RangeExpression
isBetween, isBetween, isBetween, isBetween, isBetween, isBetween, isBetween, isBetween, isBetweenExclusive, isBetweenExclusive, isBetweenExclusive, isBetweenExclusive, isBetweenExclusive, isBetweenExclusive, isBetweenExclusive, isBetweenExclusive, isBetweenInclusive, isBetweenInclusive, isBetweenInclusive, isBetweenInclusive, isBetweenInclusive, isBetweenInclusive, isBetweenInclusive, isBetweenInclusive, isGreaterThan, isGreaterThan, isGreaterThanOrEqual, isLessThan, isLessThan, isLessThanOrEqual
-
-
-
-
Method Detail
-
toSQLString
public String toSQLString(DBDefinition db)
Description copied from interface:HasSQLString
Produces the snippet provided by this class.This is only used internally.
If you are extending DBvolution and adding a new function this is the place to format the information for use in SQL. A DBDefinition instance is provided to supply context and so your SQL can used on multiple database engines.
- Specified by:
toSQLString
in interfaceHasSQLString
- Overrides:
toSQLString
in classAnyExpression<Duration,DurationResult,DBDuration>
- Parameters:
db
- the target databaseSupport DBvolution at Patreon
- Returns:
- the DBValue formatted as a SQL snippet
-
isAggregator
public boolean isAggregator()
Description copied from interface:DBExpression
Returns TRUE if this expression is an Aggregator like SUM() or LEAST().Subclasses must implement this method returning TRUE if the expression will combine the results of several rows to produce a result. If the expression relies on subexpressions, then the isAggregator method must return TRUE if the subexpressions include an aggregator.
Aggregators collect several rows together to produce a single result. Examples are MAX, MIN, and AVERAGE.
They are only appropriate in the SELECT clause and generally require the GROUP BY clause to be useful.
Aggregators are used with
DBReport
. Aggregator expressions are included in the SELECT clause but excluded from the GROUP BY clause.Support DBvolution at Patreon
- Specified by:
isAggregator
in interfaceDBExpression
- Overrides:
isAggregator
in classAnyExpression<Duration,DurationResult,DBDuration>
- Returns:
- TRUE if this DBExpression represents an aggregating functions
-
copy
public DurationExpression.FirstValueExpression copy()
Description copied from interface:DBExpression
A Complete Copy Of This DBValue.Immutability in DBvolution is maintain by internally copying objects.
This method enables immutability by performing a deep copy of the object.
Singletons may return themselves but all other objects must return a new instance with copies of all mutable fields.
Support DBvolution at Patreon
- Specified by:
copy
in interfaceDBExpression
- Specified by:
copy
in interfaceDurationResult
- Overrides:
copy
in classDurationExpression
- Returns:
- a copy of this
DBValue
-
over
public WindowFunctionFramable<DurationExpression> over()
Description copied from interface:CanBeWindowingFunctionWithFrame
Over creates a window function.Window functions allow access to data in the records right before and after the current record. A window function defines a frame or window of rows with a given length around the current row, and performs a calculation across the set of data in the window. Wikipedia has more information at https://en.wikipedia.org/wiki/SQL_window_function
- Specified by:
over
in interfaceCanBeWindowingFunctionWithFrame<DurationExpression>
- Returns:
- a windowing function start point
-
-