267 lines
8.9 KiB
Plaintext
267 lines
8.9 KiB
Plaintext
[[sql-functions]]
|
|
== Functions and Operators
|
|
|
|
=== Comparison Operators
|
|
|
|
Elasticsearch SQL supports the following comparison operators:
|
|
|
|
* Equality (`=`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/filter.sql-spec[whereFieldEquality]
|
|
--------------------------------------------------
|
|
|
|
* Inequality (`<>` or `!=`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/filter.sql-spec[whereFieldNonEquality]
|
|
--------------------------------------------------
|
|
|
|
* Comparison (`<`, `<=`, `>`, `>=`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/filter.sql-spec[whereFieldLessThan]
|
|
--------------------------------------------------
|
|
|
|
* `BETWEEN`
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/filter.sql-spec[whereBetween]
|
|
--------------------------------------------------
|
|
|
|
* `IS NULL`/`IS NOT NULL`
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/filter.sql-spec[whereIsNotNullAndIsNull]
|
|
--------------------------------------------------
|
|
|
|
|
|
=== Logical Operators
|
|
|
|
Elasticsearch SQL supports the following logical operators:
|
|
|
|
* `AND`
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/filter.sql-spec[whereFieldAndComparison]
|
|
--------------------------------------------------
|
|
|
|
* `OR`
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/filter.sql-spec[whereFieldOrComparison]
|
|
--------------------------------------------------
|
|
|
|
* `NOT`
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/filter.sql-spec[whereFieldEqualityNot]
|
|
--------------------------------------------------
|
|
|
|
|
|
=== Math Operators
|
|
|
|
Elasticsearch SQL supports the following math operators:
|
|
|
|
* Add (`+`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/arithmetic.sql-spec[plus]
|
|
--------------------------------------------------
|
|
|
|
* Subtract (infix `-`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/arithmetic.sql-spec[minus]
|
|
--------------------------------------------------
|
|
|
|
* Negate (unary `-`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/arithmetic.sql-spec[unaryMinus]
|
|
--------------------------------------------------
|
|
|
|
* Multiply (`*`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/arithmetic.sql-spec[multiply]
|
|
--------------------------------------------------
|
|
|
|
* Divide (`/`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/arithmetic.sql-spec[divide]
|
|
--------------------------------------------------
|
|
|
|
* https://en.wikipedia.org/wiki/Modulo_operation[Modulo] (`%`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/arithmetic.sql-spec[mod]
|
|
--------------------------------------------------
|
|
|
|
|
|
=== Math Functions
|
|
==== Basic
|
|
|
|
* https://en.wikipedia.org/wiki/Absolute_value[Absolute value] (`ABS`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/math.sql-spec[abs]
|
|
--------------------------------------------------
|
|
|
|
* https://en.wikipedia.org/wiki/Rounding#Round_half_up[Round] (`ROUND`)
|
|
|
|
TODO make the example in the tests presentable
|
|
|
|
NOTE: This rounds "half up" meaning that `ROUND(-1.5)` results in `-1`.
|
|
|
|
* https://en.wikipedia.org/wiki/Floor_and_ceiling_functions[Ceiling] (`CEIL`)
|
|
|
|
TODO make the example in the tests presentable
|
|
|
|
* https://en.wikipedia.org/wiki/Floor_and_ceiling_functions[Floor] (`FLOOR`)
|
|
|
|
TODO make the example in the tests presentable
|
|
|
|
* https://en.wikipedia.org/wiki/Natural_logarithm[Natural logarithm] (`LOG`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/math.sql-spec[log]
|
|
--------------------------------------------------
|
|
|
|
* https://en.wikipedia.org/wiki/Logarithm[Logarithm] base 10 (`LOG10`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/math.sql-spec[log10]
|
|
--------------------------------------------------
|
|
|
|
* https://en.wikipedia.org/wiki/Square_root[Square root] (`SQRT`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/math.sql-spec[sqrt]
|
|
--------------------------------------------------
|
|
|
|
* https://en.wikipedia.org/wiki/Cube_root[Cube root] (`CBRT`)
|
|
|
|
TODO make the example in the tests presentable
|
|
|
|
* https://en.wikipedia.org/wiki/Exponential_function[e^x^] (`EXP`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/math.sql-spec[exp]
|
|
--------------------------------------------------
|
|
|
|
* https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#expm1-double-[e^x^ - 1] (`EXPM1`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/math.sql-spec[expm1]
|
|
--------------------------------------------------
|
|
|
|
==== Trigonometric
|
|
|
|
* Convert from https://en.wikipedia.org/wiki/Radian[radians]
|
|
to https://en.wikipedia.org/wiki/Degree_(angle)[degrees] (`DEGREES`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/math.sql-spec[degrees]
|
|
--------------------------------------------------
|
|
|
|
* Convert from https://en.wikipedia.org/wiki/Degree_(angle)[degrees]
|
|
to https://en.wikipedia.org/wiki/Radian[radians] (`RADIANS`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/math.sql-spec[degrees]
|
|
--------------------------------------------------
|
|
|
|
* https://en.wikipedia.org/wiki/Trigonometric_functions#sine[Sine] (`SIN`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/math.sql-spec[sin]
|
|
--------------------------------------------------
|
|
|
|
* https://en.wikipedia.org/wiki/Trigonometric_functions#cosine[Cosine] (`COS`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/math.sql-spec[cos]
|
|
--------------------------------------------------
|
|
|
|
* https://en.wikipedia.org/wiki/Trigonometric_functions#tangent[Tangent] (`TAN`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/math.sql-spec[tan]
|
|
--------------------------------------------------
|
|
|
|
* https://en.wikipedia.org/wiki/Inverse_trigonometric_functions[Arc sine] (`ASIN`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/math.sql-spec[asin]
|
|
--------------------------------------------------
|
|
|
|
* https://en.wikipedia.org/wiki/Inverse_trigonometric_functions[Arc cosine] (`ACOS`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/math.sql-spec[acos]
|
|
--------------------------------------------------
|
|
|
|
* https://en.wikipedia.org/wiki/Inverse_trigonometric_functions[Arc tangent] (`ATAN`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/math.sql-spec[atan]
|
|
--------------------------------------------------
|
|
|
|
* https://en.wikipedia.org/wiki/Hyperbolic_function[Hyperbolic sine] (`SINH`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/math.sql-spec[sinh]
|
|
--------------------------------------------------
|
|
|
|
* https://en.wikipedia.org/wiki/Hyperbolic_function[Hyperbolic cosine] (`COSH`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/math.sql-spec[cosh]
|
|
--------------------------------------------------
|
|
|
|
|
|
=== Date and Time Functions
|
|
|
|
* Extract the year from a date (`YEAR`)
|
|
|
|
["source","sql",subs="attributes,callouts,macros"]
|
|
--------------------------------------------------
|
|
include-tagged::{sql-specs}/datetime.csv-spec[year]
|
|
--------------------------------------------------
|
|
|
|
// aggregate
|
|
|
|
// geospatial
|