| |
| <!DOCTYPE html> |
| <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--> |
| <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]--> |
| <!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]--> |
| <!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]--> |
| <head> |
| <meta charset="utf-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| <title>Built-in Functions - Spark 3.1.3 Documentation</title> |
| |
| |
| |
| |
| <link rel="stylesheet" href="css/bootstrap.min.css"> |
| <style> |
| body { |
| padding-top: 60px; |
| padding-bottom: 40px; |
| } |
| </style> |
| <meta name="viewport" content="width=device-width"> |
| <link rel="stylesheet" href="css/main.css"> |
| |
| <script src="js/vendor/modernizr-2.6.1-respond-1.1.0.min.js"></script> |
| |
| <link rel="stylesheet" href="css/pygments-default.css"> |
| <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" /> |
| <link rel="stylesheet" href="css/docsearch.css"> |
| |
| |
| <!-- Google analytics script --> |
| <script type="text/javascript"> |
| var _gaq = _gaq || []; |
| _gaq.push(['_setAccount', 'UA-32518208-2']); |
| _gaq.push(['_trackPageview']); |
| |
| (function() { |
| var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; |
| ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; |
| var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); |
| })(); |
| </script> |
| |
| |
| </head> |
| <body> |
| <!--[if lt IE 7]> |
| <p class="chromeframe">You are using an outdated browser. <a href="https://browsehappy.com/">Upgrade your browser today</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to better experience this site.</p> |
| <![endif]--> |
| |
| <!-- This code is taken from http://twitter.github.com/bootstrap/examples/hero.html --> |
| |
| <nav class="navbar fixed-top navbar-expand-md navbar-light bg-light" id="topbar"> |
| <div class="container"> |
| <div class="navbar-header"> |
| <div class="navbar-brand"><a href="index.html"> |
| <img src="img/spark-logo-hd.png" style="height:50px;"/></a><span class="version">3.1.3</span> |
| </div> |
| </div> |
| <button class="navbar-toggler" type="button" data-toggle="collapse" |
| data-target="#navbarCollapse" aria-controls="navbarCollapse" |
| aria-expanded="false" aria-label="Toggle navigation"> |
| <span class="navbar-toggler-icon"></span> |
| </button> |
| <div class="collapse navbar-collapse" id="navbarCollapse"> |
| <ul class="navbar-nav"> |
| <!--TODO(andyk): Add class="active" attribute to li some how.--> |
| <li class="nav-item"><a href="index.html" class="nav-link">Overview</a></li> |
| |
| <li class="nav-item dropdown"> |
| <a href="#" class="nav-link dropdown-toggle" id="navbarQuickStart" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Programming Guides</a> |
| <div class="dropdown-menu" aria-labelledby="navbarQuickStart"> |
| <a class="dropdown-item" href="quick-start.html">Quick Start</a> |
| <a class="dropdown-item" href="rdd-programming-guide.html">RDDs, Accumulators, Broadcasts Vars</a> |
| <a class="dropdown-item" href="sql-programming-guide.html">SQL, DataFrames, and Datasets</a> |
| <a class="dropdown-item" href="structured-streaming-programming-guide.html">Structured Streaming</a> |
| <a class="dropdown-item" href="streaming-programming-guide.html">Spark Streaming (DStreams)</a> |
| <a class="dropdown-item" href="ml-guide.html">MLlib (Machine Learning)</a> |
| <a class="dropdown-item" href="graphx-programming-guide.html">GraphX (Graph Processing)</a> |
| <a class="dropdown-item" href="sparkr.html">SparkR (R on Spark)</a> |
| <a class="dropdown-item" href="api/python/getting_started/index.html">PySpark (Python on Spark)</a> |
| </div> |
| </li> |
| |
| <li class="nav-item dropdown"> |
| <a href="#" class="nav-link dropdown-toggle" id="navbarAPIDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">API Docs</a> |
| <div class="dropdown-menu" aria-labelledby="navbarAPIDocs"> |
| <a class="dropdown-item" href="api/scala/org/apache/spark/index.html">Scala</a> |
| <a class="dropdown-item" href="api/java/index.html">Java</a> |
| <a class="dropdown-item" href="api/python/index.html">Python</a> |
| <a class="dropdown-item" href="api/R/index.html">R</a> |
| <a class="dropdown-item" href="api/sql/index.html">SQL, Built-in Functions</a> |
| </div> |
| </li> |
| |
| <li class="nav-item dropdown"> |
| <a href="#" class="nav-link dropdown-toggle" id="navbarDeploying" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Deploying</a> |
| <div class="dropdown-menu" aria-labelledby="navbarDeploying"> |
| <a class="dropdown-item" href="cluster-overview.html">Overview</a> |
| <a class="dropdown-item" href="submitting-applications.html">Submitting Applications</a> |
| <div class="dropdown-divider"></div> |
| <a class="dropdown-item" href="spark-standalone.html">Spark Standalone</a> |
| <a class="dropdown-item" href="running-on-mesos.html">Mesos</a> |
| <a class="dropdown-item" href="running-on-yarn.html">YARN</a> |
| <a class="dropdown-item" href="running-on-kubernetes.html">Kubernetes</a> |
| </div> |
| </li> |
| |
| <li class="nav-item dropdown"> |
| <a href="#" class="nav-link dropdown-toggle" id="navbarMore" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">More</a> |
| <div class="dropdown-menu" aria-labelledby="navbarMore"> |
| <a class="dropdown-item" href="configuration.html">Configuration</a> |
| <a class="dropdown-item" href="monitoring.html">Monitoring</a> |
| <a class="dropdown-item" href="tuning.html">Tuning Guide</a> |
| <a class="dropdown-item" href="job-scheduling.html">Job Scheduling</a> |
| <a class="dropdown-item" href="security.html">Security</a> |
| <a class="dropdown-item" href="hardware-provisioning.html">Hardware Provisioning</a> |
| <a class="dropdown-item" href="migration-guide.html">Migration Guide</a> |
| <div class="dropdown-divider"></div> |
| <a class="dropdown-item" href="building-spark.html">Building Spark</a> |
| <a class="dropdown-item" href="https://spark.apache.org/contributing.html">Contributing to Spark</a> |
| <a class="dropdown-item" href="https://spark.apache.org/third-party-projects.html">Third Party Projects</a> |
| </div> |
| </li> |
| |
| <li class="nav-item"> |
| <input type="text" id="docsearch-input" placeholder="Search the docs…"> |
| </li> |
| </ul> |
| <!--<span class="navbar-text navbar-right"><span class="version-text">v3.1.3</span></span>--> |
| </div> |
| </div> |
| </nav> |
| |
| <div class="container-wrapper"> |
| |
| |
| |
| <div class="left-menu-wrapper"> |
| <div class="left-menu"> |
| <h3><a href="sql-programming-guide.html">Spark SQL Guide</a></h3> |
| |
| <ul> |
| |
| <li> |
| <a href="sql-getting-started.html"> |
| |
| Getting Started |
| |
| </a> |
| </li> |
| |
| |
| |
| <li> |
| <a href="sql-data-sources.html"> |
| |
| Data Sources |
| |
| </a> |
| </li> |
| |
| |
| |
| <li> |
| <a href="sql-performance-tuning.html"> |
| |
| Performance Tuning |
| |
| </a> |
| </li> |
| |
| |
| |
| <li> |
| <a href="sql-distributed-sql-engine.html"> |
| |
| Distributed SQL Engine |
| |
| </a> |
| </li> |
| |
| |
| |
| <li> |
| <a href="sql-pyspark-pandas-with-arrow.html"> |
| |
| PySpark Usage Guide for Pandas with Apache Arrow |
| |
| </a> |
| </li> |
| |
| |
| |
| <li> |
| <a href="sql-migration-old.html"> |
| |
| Migration Guide |
| |
| </a> |
| </li> |
| |
| |
| |
| <li> |
| <a href="sql-ref.html"> |
| |
| SQL Reference |
| |
| </a> |
| </li> |
| |
| |
| |
| <ul> |
| |
| <li> |
| <a href="sql-ref-ansi-compliance.html"> |
| |
| ANSI Compliance |
| |
| </a> |
| </li> |
| |
| |
| |
| <li> |
| <a href="sql-ref-datatypes.html"> |
| |
| Data Types |
| |
| </a> |
| </li> |
| |
| |
| |
| <li> |
| <a href="sql-ref-datetime-pattern.html"> |
| |
| Datetime Pattern |
| |
| </a> |
| </li> |
| |
| |
| |
| <li> |
| <a href="sql-ref-functions.html"> |
| |
| Functions |
| |
| </a> |
| </li> |
| |
| |
| |
| <ul> |
| |
| <li> |
| <a href="sql-ref-functions-builtin.html"> |
| |
| <b>Built-in Functions</b> |
| |
| </a> |
| </li> |
| |
| |
| |
| <li> |
| <a href="sql-ref-functions-udf-scalar.html"> |
| |
| Scalar UDFs (User-Defined Functions) |
| |
| </a> |
| </li> |
| |
| |
| |
| <li> |
| <a href="sql-ref-functions-udf-aggregate.html"> |
| |
| UDAFs (User-Defined Aggregate Functions) |
| |
| </a> |
| </li> |
| |
| |
| |
| <li> |
| <a href="sql-ref-functions-udf-hive.html"> |
| |
| Integration with Hive UDFs/UDAFs/UDTFs |
| |
| </a> |
| </li> |
| |
| |
| |
| </ul> |
| |
| |
| |
| <li> |
| <a href="sql-ref-identifier.html"> |
| |
| Identifiers |
| |
| </a> |
| </li> |
| |
| |
| |
| <li> |
| <a href="sql-ref-literals.html"> |
| |
| Literals |
| |
| </a> |
| </li> |
| |
| |
| |
| <li> |
| <a href="sql-ref-null-semantics.html"> |
| |
| Null Semantics |
| |
| </a> |
| </li> |
| |
| |
| |
| <li> |
| <a href="sql-ref-syntax.html"> |
| |
| SQL Syntax |
| |
| </a> |
| </li> |
| |
| |
| |
| </ul> |
| |
| |
| |
| </ul> |
| |
| </div> |
| </div> |
| |
| <input id="nav-trigger" class="nav-trigger" checked type="checkbox"> |
| <label for="nav-trigger"></label> |
| <div class="content-with-sidebar mr-3" id="content"> |
| |
| <h1 class="title">Built-in Functions</h1> |
| |
| |
| |
| <h3 id="aggregate-functions">Aggregate Functions</h3> |
| <table class="table"> |
| <thead> |
| <tr> |
| <th style="width:25%">Function</th> |
| <th>Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>any(expr)</td> |
| <td>Returns true if at least one value of `expr` is true.</td> |
| </tr> |
| <tr> |
| <td>approx_count_distinct(expr[, relativeSD])</td> |
| <td>Returns the estimated cardinality by HyperLogLog++. |
| `relativeSD` defines the maximum relative standard deviation allowed.</td> |
| </tr> |
| <tr> |
| <td>approx_percentile(col, percentage [, accuracy])</td> |
| <td>Returns the approximate `percentile` of the numeric |
| column `col` which is the smallest value in the ordered `col` values (sorted from least to |
| greatest) such that no more than `percentage` of `col` values is less than the value |
| or equal to that value. The value of percentage must be between 0.0 and 1.0. The `accuracy` |
| parameter (default: 10000) is a positive numeric literal which controls approximation accuracy |
| at the cost of memory. Higher value of `accuracy` yields better accuracy, `1.0/accuracy` is |
| the relative error of the approximation. |
| When `percentage` is an array, each value of the percentage array must be between 0.0 and 1.0. |
| In this case, returns the approximate percentile array of column `col` at the given |
| percentage array.</td> |
| </tr> |
| <tr> |
| <td>avg(expr)</td> |
| <td>Returns the mean calculated from values of a group.</td> |
| </tr> |
| <tr> |
| <td>bit_and(expr)</td> |
| <td>Returns the bitwise AND of all non-null input values, or null if none.</td> |
| </tr> |
| <tr> |
| <td>bit_or(expr)</td> |
| <td>Returns the bitwise OR of all non-null input values, or null if none.</td> |
| </tr> |
| <tr> |
| <td>bit_xor(expr)</td> |
| <td>Returns the bitwise XOR of all non-null input values, or null if none.</td> |
| </tr> |
| <tr> |
| <td>bool_and(expr)</td> |
| <td>Returns true if all values of `expr` are true.</td> |
| </tr> |
| <tr> |
| <td>bool_or(expr)</td> |
| <td>Returns true if at least one value of `expr` is true.</td> |
| </tr> |
| <tr> |
| <td>collect_list(expr)</td> |
| <td>Collects and returns a list of non-unique elements.</td> |
| </tr> |
| <tr> |
| <td>collect_set(expr)</td> |
| <td>Collects and returns a set of unique elements.</td> |
| </tr> |
| <tr> |
| <td>corr(expr1, expr2)</td> |
| <td>Returns Pearson coefficient of correlation between a set of number pairs.</td> |
| </tr> |
| <tr> |
| <td>count(*)</td> |
| <td>Returns the total number of retrieved rows, including rows containing null.</td> |
| </tr> |
| <tr> |
| <td>count(expr[, expr...])</td> |
| <td>Returns the number of rows for which the supplied expression(s) are all non-null.</td> |
| </tr> |
| <tr> |
| <td>count(DISTINCT expr[, expr...])</td> |
| <td>Returns the number of rows for which the supplied expression(s) are unique and non-null.</td> |
| </tr> |
| <tr> |
| <td>count_if(expr)</td> |
| <td>Returns the number of `TRUE` values for the expression.</td> |
| </tr> |
| <tr> |
| <td>count_min_sketch(col, eps, confidence, seed)</td> |
| <td>Returns a count-min sketch of a column with the given esp, |
| confidence and seed. The result is an array of bytes, which can be deserialized to a |
| `CountMinSketch` before usage. Count-min sketch is a probabilistic data structure used for |
| cardinality estimation using sub-linear space.</td> |
| </tr> |
| <tr> |
| <td>covar_pop(expr1, expr2)</td> |
| <td>Returns the population covariance of a set of number pairs.</td> |
| </tr> |
| <tr> |
| <td>covar_samp(expr1, expr2)</td> |
| <td>Returns the sample covariance of a set of number pairs.</td> |
| </tr> |
| <tr> |
| <td>every(expr)</td> |
| <td>Returns true if all values of `expr` are true.</td> |
| </tr> |
| <tr> |
| <td>first(expr[, isIgnoreNull])</td> |
| <td>Returns the first value of `expr` for a group of rows. |
| If `isIgnoreNull` is true, returns only non-null values.</td> |
| </tr> |
| <tr> |
| <td>first_value(expr[, isIgnoreNull])</td> |
| <td>Returns the first value of `expr` for a group of rows. |
| If `isIgnoreNull` is true, returns only non-null values.</td> |
| </tr> |
| <tr> |
| <td>kurtosis(expr)</td> |
| <td>Returns the kurtosis value calculated from values of a group.</td> |
| </tr> |
| <tr> |
| <td>last(expr[, isIgnoreNull])</td> |
| <td>Returns the last value of `expr` for a group of rows. |
| If `isIgnoreNull` is true, returns only non-null values</td> |
| </tr> |
| <tr> |
| <td>last_value(expr[, isIgnoreNull])</td> |
| <td>Returns the last value of `expr` for a group of rows. |
| If `isIgnoreNull` is true, returns only non-null values</td> |
| </tr> |
| <tr> |
| <td>max(expr)</td> |
| <td>Returns the maximum value of `expr`.</td> |
| </tr> |
| <tr> |
| <td>max_by(x, y)</td> |
| <td>Returns the value of `x` associated with the maximum value of `y`.</td> |
| </tr> |
| <tr> |
| <td>mean(expr)</td> |
| <td>Returns the mean calculated from values of a group.</td> |
| </tr> |
| <tr> |
| <td>min(expr)</td> |
| <td>Returns the minimum value of `expr`.</td> |
| </tr> |
| <tr> |
| <td>min_by(x, y)</td> |
| <td>Returns the value of `x` associated with the minimum value of `y`.</td> |
| </tr> |
| <tr> |
| <td>percentile(col, percentage [, frequency])</td> |
| <td>Returns the exact percentile value of numeric column |
| `col` at the given percentage. The value of percentage must be between 0.0 and 1.0. The |
| value of frequency should be positive integral</td> |
| </tr> |
| <tr> |
| <td>percentile(col, array(percentage1 [, percentage2]...) [, frequency])</td> |
| <td>Returns the exact |
| percentile value array of numeric column `col` at the given percentage(s). Each value |
| of the percentage array must be between 0.0 and 1.0. The value of frequency should be |
| positive integral</td> |
| </tr> |
| <tr> |
| <td>percentile_approx(col, percentage [, accuracy])</td> |
| <td>Returns the approximate `percentile` of the numeric |
| column `col` which is the smallest value in the ordered `col` values (sorted from least to |
| greatest) such that no more than `percentage` of `col` values is less than the value |
| or equal to that value. The value of percentage must be between 0.0 and 1.0. The `accuracy` |
| parameter (default: 10000) is a positive numeric literal which controls approximation accuracy |
| at the cost of memory. Higher value of `accuracy` yields better accuracy, `1.0/accuracy` is |
| the relative error of the approximation. |
| When `percentage` is an array, each value of the percentage array must be between 0.0 and 1.0. |
| In this case, returns the approximate percentile array of column `col` at the given |
| percentage array.</td> |
| </tr> |
| <tr> |
| <td>skewness(expr)</td> |
| <td>Returns the skewness value calculated from values of a group.</td> |
| </tr> |
| <tr> |
| <td>some(expr)</td> |
| <td>Returns true if at least one value of `expr` is true.</td> |
| </tr> |
| <tr> |
| <td>std(expr)</td> |
| <td>Returns the sample standard deviation calculated from values of a group.</td> |
| </tr> |
| <tr> |
| <td>stddev(expr)</td> |
| <td>Returns the sample standard deviation calculated from values of a group.</td> |
| </tr> |
| <tr> |
| <td>stddev_pop(expr)</td> |
| <td>Returns the population standard deviation calculated from values of a group.</td> |
| </tr> |
| <tr> |
| <td>stddev_samp(expr)</td> |
| <td>Returns the sample standard deviation calculated from values of a group.</td> |
| </tr> |
| <tr> |
| <td>sum(expr)</td> |
| <td>Returns the sum calculated from values of a group.</td> |
| </tr> |
| <tr> |
| <td>var_pop(expr)</td> |
| <td>Returns the population variance calculated from values of a group.</td> |
| </tr> |
| <tr> |
| <td>var_samp(expr)</td> |
| <td>Returns the sample variance calculated from values of a group.</td> |
| </tr> |
| <tr> |
| <td>variance(expr)</td> |
| <td>Returns the sample variance calculated from values of a group.</td> |
| </tr> |
| </tbody> |
| </table> |
| |
| <h4 id="examples">Examples</h4> |
| <div class="codehilite"><pre><span></span><code><span class="c1">-- any</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">any</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">true</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">false</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">false</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="k">any</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">true</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">any</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">true</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">false</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="k">any</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">true</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">any</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">false</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">false</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="k">any</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">false</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| |
| <span class="c1">-- approx_count_distinct</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">approx_count_distinct</span><span class="p">(</span><span class="n">col1</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col1</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------+</span> |
| <span class="o">|</span><span class="n">approx_count_distinct</span><span class="p">(</span><span class="n">col1</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------+</span> |
| |
| <span class="c1">-- approx_percentile</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">approx_percentile</span><span class="p">(</span><span class="n">col</span><span class="p">,</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">0</span><span class="p">.</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="mi">100</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">approx_percentile</span><span class="p">(</span><span class="n">col</span><span class="p">,</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">0</span><span class="p">.</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="mi">100</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">approx_percentile</span><span class="p">(</span><span class="n">col</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">100</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">6</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">7</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">9</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">approx_percentile</span><span class="p">(</span><span class="n">col</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="mi">0</span><span class="p">.</span><span class="mi">5</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DOUBLE</span><span class="p">),</span><span class="w"> </span><span class="mi">100</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">7</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------+</span> |
| |
| <span class="c1">-- avg</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">avg</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="k">avg</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="p">.</span><span class="mi">0</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">avg</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="k">avg</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="p">.</span><span class="mi">5</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| |
| <span class="c1">-- bit_and</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">bit_and</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------+</span> |
| <span class="o">|</span><span class="n">bit_and</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------+</span> |
| |
| <span class="c1">-- bit_or</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">bit_or</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------+</span> |
| <span class="o">|</span><span class="n">bit_or</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">7</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------+</span> |
| |
| <span class="c1">-- bit_xor</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">bit_xor</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------+</span> |
| <span class="o">|</span><span class="n">bit_xor</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">6</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------+</span> |
| |
| <span class="c1">-- bool_and</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">bool_and</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">true</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">true</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">true</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------+</span> |
| <span class="o">|</span><span class="n">bool_and</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">true</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">bool_and</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">true</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">true</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------+</span> |
| <span class="o">|</span><span class="n">bool_and</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">true</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">bool_and</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">true</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">false</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">true</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------+</span> |
| <span class="o">|</span><span class="n">bool_and</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">false</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------+</span> |
| |
| <span class="c1">-- bool_or</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">bool_or</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">true</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">false</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">false</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------+</span> |
| <span class="o">|</span><span class="n">bool_or</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">true</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">bool_or</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">true</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">false</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------+</span> |
| <span class="o">|</span><span class="n">bool_or</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">true</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">bool_or</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">false</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">false</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------+</span> |
| <span class="o">|</span><span class="n">bool_or</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">false</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------+</span> |
| |
| <span class="c1">-- collect_list</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">collect_list</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------+</span> |
| <span class="o">|</span><span class="n">collect_list</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------+</span> |
| |
| <span class="c1">-- collect_set</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">collect_set</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------+</span> |
| <span class="o">|</span><span class="n">collect_set</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------+</span> |
| |
| <span class="c1">-- corr</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">corr</span><span class="p">(</span><span class="n">c1</span><span class="p">,</span><span class="w"> </span><span class="n">c2</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">c1</span><span class="p">,</span><span class="w"> </span><span class="n">c2</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------+</span> |
| <span class="o">|</span><span class="n">corr</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="n">c1</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DOUBLE</span><span class="p">),</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="n">c2</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DOUBLE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">8660254037844387</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------+</span> |
| |
| <span class="c1">-- count</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">count</span><span class="p">(</span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">20</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="k">count</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">4</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">count</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">20</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------+</span> |
| <span class="o">|</span><span class="k">count</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">count</span><span class="p">(</span><span class="k">DISTINCT</span><span class="w"> </span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------+</span> |
| <span class="o">|</span><span class="k">count</span><span class="p">(</span><span class="k">DISTINCT</span><span class="w"> </span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------+</span> |
| |
| <span class="c1">-- count_if</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">count_if</span><span class="p">(</span><span class="n">col</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------+</span> |
| <span class="o">|</span><span class="n">count_if</span><span class="p">(((</span><span class="n">col</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">count_if</span><span class="p">(</span><span class="n">col</span><span class="w"> </span><span class="k">IS</span><span class="w"> </span><span class="k">NULL</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------+</span> |
| <span class="o">|</span><span class="n">count_if</span><span class="p">((</span><span class="n">col</span><span class="w"> </span><span class="k">IS</span><span class="w"> </span><span class="k">NULL</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------+</span> |
| |
| <span class="c1">-- count_min_sketch</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">hex</span><span class="p">(</span><span class="n">count_min_sketch</span><span class="p">(</span><span class="n">col</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">5</span><span class="n">d</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">5</span><span class="n">d</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">))</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------+</span> |
| <span class="o">|</span><span class="n">hex</span><span class="p">(</span><span class="n">count_min_sketch</span><span class="p">(</span><span class="n">col</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">00000001000000000</span><span class="p">...</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------+</span> |
| |
| <span class="c1">-- covar_pop</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">covar_pop</span><span class="p">(</span><span class="n">c1</span><span class="p">,</span><span class="w"> </span><span class="n">c2</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">c1</span><span class="p">,</span><span class="w"> </span><span class="n">c2</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">covar_pop</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="n">c1</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DOUBLE</span><span class="p">),</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="n">c2</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DOUBLE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">6666666666666666</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------+</span> |
| |
| <span class="c1">-- covar_samp</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">covar_samp</span><span class="p">(</span><span class="n">c1</span><span class="p">,</span><span class="w"> </span><span class="n">c2</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">c1</span><span class="p">,</span><span class="w"> </span><span class="n">c2</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">covar_samp</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="n">c1</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DOUBLE</span><span class="p">),</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="n">c2</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DOUBLE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="p">.</span><span class="mi">0</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------------+</span> |
| |
| <span class="c1">-- every</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">every</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">true</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">true</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">true</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------+</span> |
| <span class="o">|</span><span class="k">every</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">true</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">every</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">true</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">true</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------+</span> |
| <span class="o">|</span><span class="k">every</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">true</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">every</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">true</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">false</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">true</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------+</span> |
| <span class="o">|</span><span class="k">every</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">false</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------+</span> |
| |
| <span class="c1">-- first</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">first</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">20</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------+</span> |
| <span class="o">|</span><span class="k">first</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">10</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">first</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">20</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------+</span> |
| <span class="o">|</span><span class="k">first</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">null</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">first</span><span class="p">(</span><span class="n">col</span><span class="p">,</span><span class="w"> </span><span class="k">true</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">20</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------+</span> |
| <span class="o">|</span><span class="k">first</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">5</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------+</span> |
| |
| <span class="c1">-- first_value</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">first_value</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">20</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------+</span> |
| <span class="o">|</span><span class="n">first_value</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">10</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">first_value</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">20</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------+</span> |
| <span class="o">|</span><span class="n">first_value</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">null</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">first_value</span><span class="p">(</span><span class="n">col</span><span class="p">,</span><span class="w"> </span><span class="k">true</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">20</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------+</span> |
| <span class="o">|</span><span class="n">first_value</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">5</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------+</span> |
| |
| <span class="c1">-- kurtosis</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">kurtosis</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="o">-</span><span class="mi">10</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="o">-</span><span class="mi">20</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">100</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">1000</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------+</span> |
| <span class="o">|</span><span class="n">kurtosis</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="n">col</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DOUBLE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="o">-</span><span class="mi">0</span><span class="p">.</span><span class="mi">7014368047529618</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">kurtosis</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">100</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------+</span> |
| <span class="o">|</span><span class="n">kurtosis</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="n">col</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DOUBLE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">19432323191698986</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------+</span> |
| |
| <span class="c1">-- last</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">last</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">20</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| <span class="o">|</span><span class="k">last</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">20</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">last</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| <span class="o">|</span><span class="k">last</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">null</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">last</span><span class="p">(</span><span class="n">col</span><span class="p">,</span><span class="w"> </span><span class="k">true</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| <span class="o">|</span><span class="k">last</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">5</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| |
| <span class="c1">-- last_value</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">last_value</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">20</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------+</span> |
| <span class="o">|</span><span class="n">last_value</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">20</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">last_value</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------+</span> |
| <span class="o">|</span><span class="n">last_value</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">null</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">last_value</span><span class="p">(</span><span class="n">col</span><span class="p">,</span><span class="w"> </span><span class="k">true</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------+</span> |
| <span class="o">|</span><span class="n">last_value</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">5</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------+</span> |
| |
| <span class="c1">-- max</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">max</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">50</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">20</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="k">max</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">50</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| |
| <span class="c1">-- max_by</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">max_by</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">((</span><span class="s1">'a'</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p">)),</span><span class="w"> </span><span class="p">((</span><span class="s1">'b'</span><span class="p">,</span><span class="w"> </span><span class="mi">50</span><span class="p">)),</span><span class="w"> </span><span class="p">((</span><span class="s1">'c'</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">))</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------+</span> |
| <span class="o">|</span><span class="n">max_by</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="n">b</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------+</span> |
| |
| <span class="c1">-- mean</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">mean</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| <span class="o">|</span><span class="n">mean</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="p">.</span><span class="mi">0</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">mean</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| <span class="o">|</span><span class="n">mean</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="p">.</span><span class="mi">5</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| |
| <span class="c1">-- min</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">min</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">20</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="k">min</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| |
| <span class="c1">-- min_by</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">min_by</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">((</span><span class="s1">'a'</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p">)),</span><span class="w"> </span><span class="p">((</span><span class="s1">'b'</span><span class="p">,</span><span class="w"> </span><span class="mi">50</span><span class="p">)),</span><span class="w"> </span><span class="p">((</span><span class="s1">'c'</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">))</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------+</span> |
| <span class="o">|</span><span class="n">min_by</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="n">a</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------+</span> |
| |
| <span class="c1">-- percentile</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">percentile</span><span class="p">(</span><span class="n">col</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------+</span> |
| <span class="o">|</span><span class="n">percentile</span><span class="p">(</span><span class="n">col</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="mi">0</span><span class="p">.</span><span class="mi">3</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DOUBLE</span><span class="p">),</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="p">.</span><span class="mi">0</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">percentile</span><span class="p">(</span><span class="n">col</span><span class="p">,</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">0</span><span class="p">.</span><span class="mi">25</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">75</span><span class="p">))</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------+</span> |
| <span class="o">|</span><span class="n">percentile</span><span class="p">(</span><span class="n">col</span><span class="p">,</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">0</span><span class="p">.</span><span class="mi">25</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">75</span><span class="p">),</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">2</span><span class="p">.</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="p">.</span><span class="mi">5</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------+</span> |
| |
| <span class="c1">-- percentile_approx</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">percentile_approx</span><span class="p">(</span><span class="n">col</span><span class="p">,</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">0</span><span class="p">.</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="mi">100</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">percentile_approx</span><span class="p">(</span><span class="n">col</span><span class="p">,</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">0</span><span class="p">.</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="mi">100</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">percentile_approx</span><span class="p">(</span><span class="n">col</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">100</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">6</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">7</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">9</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">percentile_approx</span><span class="p">(</span><span class="n">col</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="mi">0</span><span class="p">.</span><span class="mi">5</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DOUBLE</span><span class="p">),</span><span class="w"> </span><span class="mi">100</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">7</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------+</span> |
| |
| <span class="c1">-- skewness</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">skewness</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="o">-</span><span class="mi">10</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="o">-</span><span class="mi">20</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">100</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">1000</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------+</span> |
| <span class="o">|</span><span class="n">skewness</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="n">col</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DOUBLE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="p">.</span><span class="mi">1135657469022013</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">skewness</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="o">-</span><span class="mi">1000</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="o">-</span><span class="mi">100</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">20</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------+</span> |
| <span class="o">|</span><span class="n">skewness</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="n">col</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DOUBLE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="p">.</span><span class="mi">1135657469022011</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------+</span> |
| |
| <span class="c1">-- some</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">some</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">true</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">false</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">false</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| <span class="o">|</span><span class="k">some</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">true</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">some</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">true</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">false</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| <span class="o">|</span><span class="k">some</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">true</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">some</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">false</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">false</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| <span class="o">|</span><span class="k">some</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">false</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------+</span> |
| |
| <span class="c1">-- std</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">std</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------+</span> |
| <span class="o">|</span><span class="n">std</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="n">col</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DOUBLE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="p">.</span><span class="mi">0</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------+</span> |
| |
| <span class="c1">-- stddev</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">stddev</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------+</span> |
| <span class="o">|</span><span class="n">stddev</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="n">col</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DOUBLE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="p">.</span><span class="mi">0</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------+</span> |
| |
| <span class="c1">-- stddev_pop</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">stddev_pop</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------+</span> |
| <span class="o">|</span><span class="n">stddev_pop</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="n">col</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DOUBLE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">816496580927726</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------+</span> |
| |
| <span class="c1">-- stddev_samp</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">stddev_samp</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------+</span> |
| <span class="o">|</span><span class="n">stddev_samp</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="n">col</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DOUBLE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="p">.</span><span class="mi">0</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------+</span> |
| |
| <span class="c1">-- sum</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">sum</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">5</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">15</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="k">sum</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">30</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">sum</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">15</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="k">sum</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">25</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">sum</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">NULL</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="k">sum</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">null</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------+</span> |
| |
| <span class="c1">-- var_pop</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">var_pop</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------+</span> |
| <span class="o">|</span><span class="n">var_pop</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="n">col</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DOUBLE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">6666666666666666</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------+</span> |
| |
| <span class="c1">-- var_samp</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">var_samp</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------+</span> |
| <span class="o">|</span><span class="n">var_samp</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="n">col</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DOUBLE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="p">.</span><span class="mi">0</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------+</span> |
| |
| <span class="c1">-- variance</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">variance</span><span class="p">(</span><span class="n">col</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">tab</span><span class="p">(</span><span class="n">col</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------+</span> |
| <span class="o">|</span><span class="n">variance</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="n">col</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">DOUBLE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="p">.</span><span class="mi">0</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------+</span> |
| </code></pre></div> |
| |
| <h3 id="window-functions">Window Functions</h3> |
| <table class="table"> |
| <thead> |
| <tr> |
| <th style="width:25%">Function</th> |
| <th>Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>cume_dist()</td> |
| <td>Computes the position of a value relative to all values in the partition.</td> |
| </tr> |
| <tr> |
| <td>dense_rank()</td> |
| <td>Computes the rank of a value in a group of values. The result is one plus the |
| previously assigned rank value. Unlike the function rank, dense_rank will not produce gaps |
| in the ranking sequence.</td> |
| </tr> |
| <tr> |
| <td>lag(input[, offset[, default]])</td> |
| <td>Returns the value of `input` at the `offset`th row |
| before the current row in the window. The default value of `offset` is 1 and the default |
| value of `default` is null. If the value of `input` at the `offset`th row is null, |
| null is returned. If there is no such offset row (e.g., when the offset is 1, the first |
| row of the window does not have any previous row), `default` is returned.</td> |
| </tr> |
| <tr> |
| <td>lead(input[, offset[, default]])</td> |
| <td>Returns the value of `input` at the `offset`th row |
| after the current row in the window. The default value of `offset` is 1 and the default |
| value of `default` is null. If the value of `input` at the `offset`th row is null, |
| null is returned. If there is no such an offset row (e.g., when the offset is 1, the last |
| row of the window does not have any subsequent row), `default` is returned.</td> |
| </tr> |
| <tr> |
| <td>nth_value(input[, offset])</td> |
| <td>Returns the value of `input` at the row that is the `offset`th row |
| from beginning of the window frame. Offset starts at 1. If ignoreNulls=true, we will skip |
| nulls when finding the `offset`th row. Otherwise, every row counts for the `offset`. If |
| there is no such an `offset`th row (e.g., when the offset is 10, size of the window frame |
| is less than 10), null is returned.</td> |
| </tr> |
| <tr> |
| <td>ntile(n)</td> |
| <td>Divides the rows for each window partition into `n` buckets ranging |
| from 1 to at most `n`.</td> |
| </tr> |
| <tr> |
| <td>percent_rank()</td> |
| <td>Computes the percentage ranking of a value in a group of values.</td> |
| </tr> |
| <tr> |
| <td>rank()</td> |
| <td>Computes the rank of a value in a group of values. The result is one plus the number |
| of rows preceding or equal to the current row in the ordering of the partition. The values |
| will produce gaps in the sequence.</td> |
| </tr> |
| <tr> |
| <td>row_number()</td> |
| <td>Assigns a unique, sequential number to each row, starting with one, |
| according to the ordering of rows within the window partition.</td> |
| </tr> |
| </tbody> |
| </table> |
| |
| <h3 id="array-functions">Array Functions</h3> |
| <table class="table"> |
| <thead> |
| <tr> |
| <th style="width:25%">Function</th> |
| <th>Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>array_contains(array, value)</td> |
| <td>Returns true if the array contains the value.</td> |
| </tr> |
| <tr> |
| <td>array_distinct(array)</td> |
| <td>Removes duplicate values from the array.</td> |
| </tr> |
| <tr> |
| <td>array_except(array1, array2)</td> |
| <td>Returns an array of the elements in array1 but not in array2, |
| without duplicates.</td> |
| </tr> |
| <tr> |
| <td>array_intersect(array1, array2)</td> |
| <td>Returns an array of the elements in the intersection of array1 and |
| array2, without duplicates.</td> |
| </tr> |
| <tr> |
| <td>array_join(array, delimiter[, nullReplacement])</td> |
| <td>Concatenates the elements of the given array |
| using the delimiter and an optional string to replace nulls. If no value is set for |
| nullReplacement, any null value is filtered.</td> |
| </tr> |
| <tr> |
| <td>array_max(array)</td> |
| <td>Returns the maximum value in the array. NULL elements are skipped.</td> |
| </tr> |
| <tr> |
| <td>array_min(array)</td> |
| <td>Returns the minimum value in the array. NULL elements are skipped.</td> |
| </tr> |
| <tr> |
| <td>array_position(array, element)</td> |
| <td>Returns the (1-based) index of the first element of the array as long.</td> |
| </tr> |
| <tr> |
| <td>array_remove(array, element)</td> |
| <td>Remove all elements that equal to element from array.</td> |
| </tr> |
| <tr> |
| <td>array_repeat(element, count)</td> |
| <td>Returns the array containing element count times.</td> |
| </tr> |
| <tr> |
| <td>array_union(array1, array2)</td> |
| <td>Returns an array of the elements in the union of array1 and array2, |
| without duplicates.</td> |
| </tr> |
| <tr> |
| <td>arrays_overlap(a1, a2)</td> |
| <td>Returns true if a1 contains at least a non-null element present also in a2. If the arrays have no common element and they are both non-empty and either of them contains a null element null is returned, false otherwise.</td> |
| </tr> |
| <tr> |
| <td>arrays_zip(a1, a2, ...)</td> |
| <td>Returns a merged array of structs in which the N-th struct contains all |
| N-th values of input arrays.</td> |
| </tr> |
| <tr> |
| <td>concat(col1, col2, ..., colN)</td> |
| <td>Returns the concatenation of col1, col2, ..., colN.</td> |
| </tr> |
| <tr> |
| <td>flatten(arrayOfArrays)</td> |
| <td>Transforms an array of arrays into a single array.</td> |
| </tr> |
| <tr> |
| <td>reverse(array)</td> |
| <td>Returns a reversed string or an array with reverse order of elements.</td> |
| </tr> |
| <tr> |
| <td>sequence(start, stop, step)</td> |
| <td>Generates an array of elements from start to stop (inclusive), |
| incrementing by step. The type of the returned elements is the same as the type of argument |
| expressions. |
| |
| Supported types are: byte, short, integer, long, date, timestamp. |
| |
| The start and stop expressions must resolve to the same type. |
| If start and stop expressions resolve to the 'date' or 'timestamp' type |
| then the step expression must resolve to the 'interval' type, otherwise to the same type |
| as the start and stop expressions.</td> |
| </tr> |
| <tr> |
| <td>shuffle(array)</td> |
| <td>Returns a random permutation of the given array.</td> |
| </tr> |
| <tr> |
| <td>slice(x, start, length)</td> |
| <td>Subsets array x starting from index start (array indices start at 1, or starting from the end if start is negative) with the specified length.</td> |
| </tr> |
| <tr> |
| <td>sort_array(array[, ascendingOrder])</td> |
| <td>Sorts the input array in ascending or descending order |
| according to the natural ordering of the array elements. Null elements will be placed |
| at the beginning of the returned array in ascending order or at the end of the returned |
| array in descending order.</td> |
| </tr> |
| </tbody> |
| </table> |
| |
| <h4 id="examples-1">Examples</h4> |
| <div class="codehilite"><pre><span></span><code><span class="c1">-- array_contains</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">array_contains</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="mi">2</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| <span class="o">|</span><span class="n">array_contains</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">true</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| |
| <span class="c1">-- array_distinct</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">array_distinct</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="k">null</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">array_distinct</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="k">NULL</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">INT</span><span class="p">),</span><span class="w"> </span><span class="mi">3</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="k">null</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------+</span> |
| |
| <span class="c1">-- array_except</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">array_except</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------+</span> |
| <span class="o">|</span><span class="n">array_except</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------+</span> |
| |
| <span class="c1">-- array_intersect</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">array_intersect</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------+</span> |
| <span class="o">|</span><span class="n">array_intersect</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------+</span> |
| |
| <span class="c1">-- array_join</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">array_join</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="s1">'hello'</span><span class="p">,</span><span class="w"> </span><span class="s1">'world'</span><span class="p">),</span><span class="w"> </span><span class="s1">' '</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------+</span> |
| <span class="o">|</span><span class="n">array_join</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="n">hello</span><span class="p">,</span><span class="w"> </span><span class="n">world</span><span class="p">),</span><span class="w"> </span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="n">hello</span><span class="w"> </span><span class="n">world</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">array_join</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="s1">'hello'</span><span class="p">,</span><span class="w"> </span><span class="k">null</span><span class="w"> </span><span class="p">,</span><span class="s1">'world'</span><span class="p">),</span><span class="w"> </span><span class="s1">' '</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">array_join</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="n">hello</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="k">NULL</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">STRING</span><span class="p">),</span><span class="w"> </span><span class="n">world</span><span class="p">),</span><span class="w"> </span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="n">hello</span><span class="w"> </span><span class="n">world</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">array_join</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="s1">'hello'</span><span class="p">,</span><span class="w"> </span><span class="k">null</span><span class="w"> </span><span class="p">,</span><span class="s1">'world'</span><span class="p">),</span><span class="w"> </span><span class="s1">' '</span><span class="p">,</span><span class="w"> </span><span class="s1">','</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">array_join</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="n">hello</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="k">NULL</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">STRING</span><span class="p">),</span><span class="w"> </span><span class="n">world</span><span class="p">),</span><span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="p">,)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="n">hello</span><span class="w"> </span><span class="p">,</span><span class="w"> </span><span class="n">world</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------------+</span> |
| |
| <span class="c1">-- array_max</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">array_max</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span><span class="w"> </span><span class="k">null</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------------+</span> |
| <span class="o">|</span><span class="n">array_max</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="k">NULL</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">INT</span><span class="p">),</span><span class="w"> </span><span class="mi">3</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">20</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------------+</span> |
| |
| <span class="c1">-- array_min</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">array_min</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span><span class="w"> </span><span class="k">null</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------------+</span> |
| <span class="o">|</span><span class="n">array_min</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="k">NULL</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">INT</span><span class="p">),</span><span class="w"> </span><span class="mi">3</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------------+</span> |
| |
| <span class="c1">-- array_position</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">array_position</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| <span class="o">|</span><span class="n">array_position</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">),</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| |
| <span class="c1">-- array_remove</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">array_remove</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="k">null</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="mi">3</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">array_remove</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="k">NULL</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">INT</span><span class="p">),</span><span class="w"> </span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="mi">3</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="k">null</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------+</span> |
| |
| <span class="c1">-- array_repeat</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">array_repeat</span><span class="p">(</span><span class="s1">'123'</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------+</span> |
| <span class="o">|</span><span class="n">array_repeat</span><span class="p">(</span><span class="mi">123</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">123</span><span class="p">,</span><span class="w"> </span><span class="mi">123</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------+</span> |
| |
| <span class="c1">-- array_union</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">array_union</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------+</span> |
| <span class="o">|</span><span class="n">array_union</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------+</span> |
| |
| <span class="c1">-- arrays_overlap</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">arrays_overlap</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------+</span> |
| <span class="o">|</span><span class="n">arrays_overlap</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">true</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------+</span> |
| |
| <span class="c1">-- arrays_zip</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">arrays_zip</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------+</span> |
| <span class="o">|</span><span class="n">arrays_zip</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="err">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="err">}</span><span class="p">,</span><span class="w"> </span><span class="err">{</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="err">}</span><span class="p">,</span><span class="w"> </span><span class="p">...</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">arrays_zip</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">arrays_zip</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="err">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="err">}</span><span class="p">,</span><span class="w"> </span><span class="err">{</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">...</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------+</span> |
| |
| <span class="c1">-- concat</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">concat</span><span class="p">(</span><span class="s1">'Spark'</span><span class="p">,</span><span class="w"> </span><span class="s1">'SQL'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------+</span> |
| <span class="o">|</span><span class="n">concat</span><span class="p">(</span><span class="n">Spark</span><span class="p">,</span><span class="w"> </span><span class="k">SQL</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="n">SparkSQL</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">concat</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">),</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">6</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------------+</span> |
| <span class="o">|</span><span class="n">concat</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">),</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">),</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">6</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------------+</span> |
| |
| <span class="c1">-- flatten</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">flatten</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">)));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------+</span> |
| <span class="o">|</span><span class="n">flatten</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="nb">array</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">)))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------+</span> |
| |
| <span class="c1">-- reverse</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">reverse</span><span class="p">(</span><span class="s1">'Spark SQL'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------+</span> |
| <span class="o">|</span><span class="n">reverse</span><span class="p">(</span><span class="n">Spark</span><span class="w"> </span><span class="k">SQL</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="n">LQS</span><span class="w"> </span><span class="n">krapS</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">reverse</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------+</span> |
| <span class="o">|</span><span class="n">reverse</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------+</span> |
| |
| <span class="c1">-- sequence</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">sequence</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="n">sequence</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------+</span> |
| <span class="o">|</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">sequence</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="n">sequence</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------+</span> |
| <span class="o">|</span><span class="p">[</span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">sequence</span><span class="p">(</span><span class="n">to_date</span><span class="p">(</span><span class="s1">'2018-01-01'</span><span class="p">),</span><span class="w"> </span><span class="n">to_date</span><span class="p">(</span><span class="s1">'2018-03-01'</span><span class="p">),</span><span class="w"> </span><span class="nb">interval</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">month</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">sequence</span><span class="p">(</span><span class="n">to_date</span><span class="p">(</span><span class="mi">2018</span><span class="o">-</span><span class="mi">01</span><span class="o">-</span><span class="mi">01</span><span class="p">),</span><span class="w"> </span><span class="n">to_date</span><span class="p">(</span><span class="mi">2018</span><span class="o">-</span><span class="mi">03</span><span class="o">-</span><span class="mi">01</span><span class="p">),</span><span class="w"> </span><span class="nb">INTERVAL</span><span class="w"> </span><span class="s1">'1 months'</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">2018</span><span class="o">-</span><span class="mi">01</span><span class="o">-</span><span class="mi">01</span><span class="p">,</span><span class="w"> </span><span class="mi">2018</span><span class="p">...</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------------------------+</span> |
| |
| <span class="c1">-- shuffle</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">shuffle</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------+</span> |
| <span class="o">|</span><span class="n">shuffle</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">shuffle</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span><span class="w"> </span><span class="k">null</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------+</span> |
| <span class="o">|</span><span class="n">shuffle</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="k">NULL</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">INT</span><span class="p">),</span><span class="w"> </span><span class="mi">3</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="k">null</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------+</span> |
| |
| <span class="c1">-- slice</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">slice</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">),</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------+</span> |
| <span class="o">|</span><span class="n">slice</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">),</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">slice</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">),</span><span class="w"> </span><span class="o">-</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------+</span> |
| <span class="o">|</span><span class="n">slice</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">),</span><span class="w"> </span><span class="o">-</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------+</span> |
| |
| <span class="c1">-- sort_array</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">sort_array</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="s1">'b'</span><span class="p">,</span><span class="w"> </span><span class="s1">'d'</span><span class="p">,</span><span class="w"> </span><span class="k">null</span><span class="p">,</span><span class="w"> </span><span class="s1">'c'</span><span class="p">,</span><span class="w"> </span><span class="s1">'a'</span><span class="p">),</span><span class="w"> </span><span class="k">true</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">sort_array</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="n">b</span><span class="p">,</span><span class="w"> </span><span class="n">d</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="k">NULL</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">STRING</span><span class="p">),</span><span class="w"> </span><span class="k">c</span><span class="p">,</span><span class="w"> </span><span class="n">a</span><span class="p">),</span><span class="w"> </span><span class="k">true</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="k">null</span><span class="p">,</span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="p">,</span><span class="w"> </span><span class="k">c</span><span class="p">,</span><span class="w"> </span><span class="n">d</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------------------------+</span> |
| </code></pre></div> |
| |
| <h3 id="map-functions">Map Functions</h3> |
| <table class="table"> |
| <thead> |
| <tr> |
| <th style="width:25%">Function</th> |
| <th>Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>map_concat(map, ...)</td> |
| <td>Returns the union of all the given maps</td> |
| </tr> |
| <tr> |
| <td>map_entries(map)</td> |
| <td>Returns an unordered array of all entries in the given map.</td> |
| </tr> |
| <tr> |
| <td>map_from_entries(arrayOfEntries)</td> |
| <td>Returns a map created from the given array of entries.</td> |
| </tr> |
| <tr> |
| <td>map_keys(map)</td> |
| <td>Returns an unordered array containing the keys of the map.</td> |
| </tr> |
| <tr> |
| <td>map_values(map)</td> |
| <td>Returns an unordered array containing the values of the map.</td> |
| </tr> |
| </tbody> |
| </table> |
| |
| <h4 id="examples-2">Examples</h4> |
| <div class="codehilite"><pre><span></span><code><span class="c1">-- map_concat</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">map_concat</span><span class="p">(</span><span class="k">map</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="s1">'a'</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="s1">'b'</span><span class="p">),</span><span class="w"> </span><span class="k">map</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="s1">'c'</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------+</span> |
| <span class="o">|</span><span class="n">map_concat</span><span class="p">(</span><span class="k">map</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="p">),</span><span class="w"> </span><span class="k">map</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="k">c</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="mi">1</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">b</span><span class="p">,</span><span class="w"> </span><span class="p">...</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------+</span> |
| |
| <span class="c1">-- map_entries</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">map_entries</span><span class="p">(</span><span class="k">map</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="s1">'a'</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="s1">'b'</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------+</span> |
| <span class="o">|</span><span class="n">map_entries</span><span class="p">(</span><span class="k">map</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="err">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">a</span><span class="err">}</span><span class="p">,</span><span class="w"> </span><span class="err">{</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="err">}</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------+</span> |
| |
| <span class="c1">-- map_from_entries</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">map_from_entries</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="n">struct</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="s1">'a'</span><span class="p">),</span><span class="w"> </span><span class="n">struct</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="s1">'b'</span><span class="p">)));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">map_from_entries</span><span class="p">(</span><span class="nb">array</span><span class="p">(</span><span class="n">struct</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">a</span><span class="p">),</span><span class="w"> </span><span class="n">struct</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="p">)))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="mi">1</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">b</span><span class="err">}</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------------------+</span> |
| |
| <span class="c1">-- map_keys</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">map_keys</span><span class="p">(</span><span class="k">map</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="s1">'a'</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="s1">'b'</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------+</span> |
| <span class="o">|</span><span class="n">map_keys</span><span class="p">(</span><span class="k">map</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------+</span> |
| |
| <span class="c1">-- map_values</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">map_values</span><span class="p">(</span><span class="k">map</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="s1">'a'</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="s1">'b'</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------+</span> |
| <span class="o">|</span><span class="n">map_values</span><span class="p">(</span><span class="k">map</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------+</span> |
| </code></pre></div> |
| |
| <h3 id="date-and-timestamp-functions">Date and Timestamp Functions</h3> |
| <table class="table"> |
| <thead> |
| <tr> |
| <th style="width:25%">Function</th> |
| <th>Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>add_months(start_date, num_months)</td> |
| <td>Returns the date that is `num_months` after `start_date`.</td> |
| </tr> |
| <tr> |
| <td>current_date()</td> |
| <td>Returns the current date at the start of query evaluation. All calls of current_date within the same query return the same value.</td> |
| </tr> |
| <tr> |
| <td>current_date</td> |
| <td>Returns the current date at the start of query evaluation.</td> |
| </tr> |
| <tr> |
| <td>current_timestamp()</td> |
| <td>Returns the current timestamp at the start of query evaluation. All calls of current_timestamp within the same query return the same value.</td> |
| </tr> |
| <tr> |
| <td>current_timestamp</td> |
| <td>Returns the current timestamp at the start of query evaluation.</td> |
| </tr> |
| <tr> |
| <td>current_timezone()</td> |
| <td>Returns the current session local timezone.</td> |
| </tr> |
| <tr> |
| <td>date_add(start_date, num_days)</td> |
| <td>Returns the date that is `num_days` after `start_date`.</td> |
| </tr> |
| <tr> |
| <td>date_format(timestamp, fmt)</td> |
| <td>Converts `timestamp` to a value of string in the format specified by the date format `fmt`.</td> |
| </tr> |
| <tr> |
| <td>date_from_unix_date(days)</td> |
| <td>Create date from the number of days since 1970-01-01.</td> |
| </tr> |
| <tr> |
| <td>date_part(field, source)</td> |
| <td>Extracts a part of the date/timestamp or interval source.</td> |
| </tr> |
| <tr> |
| <td>date_sub(start_date, num_days)</td> |
| <td>Returns the date that is `num_days` before `start_date`.</td> |
| </tr> |
| <tr> |
| <td>date_trunc(fmt, ts)</td> |
| <td>Returns timestamp `ts` truncated to the unit specified by the format model `fmt`.</td> |
| </tr> |
| <tr> |
| <td>datediff(endDate, startDate)</td> |
| <td>Returns the number of days from `startDate` to `endDate`.</td> |
| </tr> |
| <tr> |
| <td>dayofweek(date)</td> |
| <td>Returns the day of the week for date/timestamp (1 = Sunday, 2 = Monday, ..., 7 = Saturday).</td> |
| </tr> |
| <tr> |
| <td>dayofyear(date)</td> |
| <td>Returns the day of year of the date/timestamp.</td> |
| </tr> |
| <tr> |
| <td>from_unixtime(unix_time[, fmt])</td> |
| <td>Returns `unix_time` in the specified `fmt`.</td> |
| </tr> |
| <tr> |
| <td>from_utc_timestamp(timestamp, timezone)</td> |
| <td>Given a timestamp like '2017-07-14 02:40:00.0', interprets it as a time in UTC, and renders that time as a timestamp in the given time zone. For example, 'GMT+1' would yield '2017-07-14 03:40:00.0'.</td> |
| </tr> |
| <tr> |
| <td>hour(timestamp)</td> |
| <td>Returns the hour component of the string/timestamp.</td> |
| </tr> |
| <tr> |
| <td>last_day(date)</td> |
| <td>Returns the last day of the month which the date belongs to.</td> |
| </tr> |
| <tr> |
| <td>make_date(year, month, day)</td> |
| <td>Create date from year, month and day fields.</td> |
| </tr> |
| <tr> |
| <td>make_timestamp(year, month, day, hour, min, sec[, timezone])</td> |
| <td>Create timestamp from year, month, day, hour, min, sec and timezone fields.</td> |
| </tr> |
| <tr> |
| <td>minute(timestamp)</td> |
| <td>Returns the minute component of the string/timestamp.</td> |
| </tr> |
| <tr> |
| <td>month(date)</td> |
| <td>Returns the month component of the date/timestamp.</td> |
| </tr> |
| <tr> |
| <td>months_between(timestamp1, timestamp2[, roundOff])</td> |
| <td>If `timestamp1` is later than `timestamp2`, then the result |
| is positive. If `timestamp1` and `timestamp2` are on the same day of month, or both |
| are the last day of month, time of day will be ignored. Otherwise, the difference is |
| calculated based on 31 days per month, and rounded to 8 digits unless roundOff=false.</td> |
| </tr> |
| <tr> |
| <td>next_day(start_date, day_of_week)</td> |
| <td>Returns the first date which is later than `start_date` and named as indicated.</td> |
| </tr> |
| <tr> |
| <td>now()</td> |
| <td>Returns the current timestamp at the start of query evaluation.</td> |
| </tr> |
| <tr> |
| <td>quarter(date)</td> |
| <td>Returns the quarter of the year for date, in the range 1 to 4.</td> |
| </tr> |
| <tr> |
| <td>second(timestamp)</td> |
| <td>Returns the second component of the string/timestamp.</td> |
| </tr> |
| <tr> |
| <td>timestamp_micros(microseconds)</td> |
| <td>Creates timestamp from the number of microseconds since UTC epoch.</td> |
| </tr> |
| <tr> |
| <td>timestamp_millis(milliseconds)</td> |
| <td>Creates timestamp from the number of milliseconds since UTC epoch.</td> |
| </tr> |
| <tr> |
| <td>timestamp_seconds(seconds)</td> |
| <td>Creates timestamp from the number of seconds (can be fractional) since UTC epoch.</td> |
| </tr> |
| <tr> |
| <td>to_date(date_str[, fmt])</td> |
| <td>Parses the `date_str` expression with the `fmt` expression to |
| a date. Returns null with invalid input. By default, it follows casting rules to a date if |
| the `fmt` is omitted.</td> |
| </tr> |
| <tr> |
| <td>to_timestamp(timestamp_str[, fmt])</td> |
| <td>Parses the `timestamp_str` expression with the `fmt` expression |
| to a timestamp. Returns null with invalid input. By default, it follows casting rules to |
| a timestamp if the `fmt` is omitted.</td> |
| </tr> |
| <tr> |
| <td>to_unix_timestamp(timeExp[, fmt])</td> |
| <td>Returns the UNIX timestamp of the given time.</td> |
| </tr> |
| <tr> |
| <td>to_utc_timestamp(timestamp, timezone)</td> |
| <td>Given a timestamp like '2017-07-14 02:40:00.0', interprets it as a time in the given time zone, and renders that time as a timestamp in UTC. For example, 'GMT+1' would yield '2017-07-14 01:40:00.0'.</td> |
| </tr> |
| <tr> |
| <td>trunc(date, fmt)</td> |
| <td>Returns `date` with the time portion of the day truncated to the unit specified by the format model `fmt`.</td> |
| </tr> |
| <tr> |
| <td>unix_date(date)</td> |
| <td>Returns the number of days since 1970-01-01.</td> |
| </tr> |
| <tr> |
| <td>unix_micros(timestamp)</td> |
| <td>Returns the number of microseconds since 1970-01-01 00:00:00 UTC.</td> |
| </tr> |
| <tr> |
| <td>unix_millis(timestamp)</td> |
| <td>Returns the number of milliseconds since 1970-01-01 00:00:00 UTC. Truncates higher levels of precision.</td> |
| </tr> |
| <tr> |
| <td>unix_seconds(timestamp)</td> |
| <td>Returns the number of seconds since 1970-01-01 00:00:00 UTC. Truncates higher levels of precision.</td> |
| </tr> |
| <tr> |
| <td>unix_timestamp([timeExp[, fmt]])</td> |
| <td>Returns the UNIX timestamp of current or specified time.</td> |
| </tr> |
| <tr> |
| <td>weekday(date)</td> |
| <td>Returns the day of the week for date/timestamp (0 = Monday, 1 = Tuesday, ..., 6 = Sunday).</td> |
| </tr> |
| <tr> |
| <td>weekofyear(date)</td> |
| <td>Returns the week of the year of the given date. A week is considered to start on a Monday and week 1 is the first week with >3 days.</td> |
| </tr> |
| <tr> |
| <td>year(date)</td> |
| <td>Returns the year component of the date/timestamp.</td> |
| </tr> |
| </tbody> |
| </table> |
| |
| <h4 id="examples-3">Examples</h4> |
| <div class="codehilite"><pre><span></span><code><span class="c1">-- add_months</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">add_months</span><span class="p">(</span><span class="s1">'2016-08-31'</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------+</span> |
| <span class="o">|</span><span class="n">add_months</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2016</span><span class="o">-</span><span class="mi">08</span><span class="o">-</span><span class="mi">31</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">),</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2016</span><span class="o">-</span><span class="mi">09</span><span class="o">-</span><span class="mi">30</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------+</span> |
| |
| <span class="c1">-- current_date</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">current_date</span><span class="p">();</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------+</span> |
| <span class="o">|</span><span class="k">current_date</span><span class="p">()</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2022</span><span class="o">-</span><span class="mi">02</span><span class="o">-</span><span class="mi">07</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">current_date</span><span class="p">;</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------+</span> |
| <span class="o">|</span><span class="k">current_date</span><span class="p">()</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2022</span><span class="o">-</span><span class="mi">02</span><span class="o">-</span><span class="mi">07</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------+</span> |
| |
| <span class="c1">-- current_timestamp</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">current_timestamp</span><span class="p">();</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">current_timestamp</span><span class="p">()</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------+</span> |
| <span class="o">|</span><span class="mi">2022</span><span class="o">-</span><span class="mi">02</span><span class="o">-</span><span class="mi">07</span><span class="w"> </span><span class="mi">00</span><span class="p">:</span><span class="mi">17</span><span class="p">:...</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">current_timestamp</span><span class="p">;</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">current_timestamp</span><span class="p">()</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------+</span> |
| <span class="o">|</span><span class="mi">2022</span><span class="o">-</span><span class="mi">02</span><span class="o">-</span><span class="mi">07</span><span class="w"> </span><span class="mi">00</span><span class="p">:</span><span class="mi">17</span><span class="p">:...</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------+</span> |
| |
| <span class="c1">-- current_timezone</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">current_timezone</span><span class="p">();</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------+</span> |
| <span class="o">|</span><span class="n">current_timezone</span><span class="p">()</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="n">Etc</span><span class="o">/</span><span class="n">UTC</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------+</span> |
| |
| <span class="c1">-- date_add</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">date_add</span><span class="p">(</span><span class="s1">'2016-07-30'</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------+</span> |
| <span class="o">|</span><span class="n">date_add</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2016</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">30</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">),</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2016</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">31</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------+</span> |
| |
| <span class="c1">-- date_format</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">date_format</span><span class="p">(</span><span class="s1">'2016-04-08'</span><span class="p">,</span><span class="w"> </span><span class="s1">'y'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------------+</span> |
| <span class="o">|</span><span class="n">date_format</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2016</span><span class="o">-</span><span class="mi">04</span><span class="o">-</span><span class="mi">08</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="p">),</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2016</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------------------+</span> |
| |
| <span class="c1">-- date_from_unix_date</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">date_from_unix_date</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------+</span> |
| <span class="o">|</span><span class="n">date_from_unix_date</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1970</span><span class="o">-</span><span class="mi">01</span><span class="o">-</span><span class="mi">02</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------+</span> |
| |
| <span class="c1">-- date_part</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">date_part</span><span class="p">(</span><span class="s1">'YEAR'</span><span class="p">,</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="w"> </span><span class="s1">'2019-08-12 01:00:00.123456'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">date_part</span><span class="p">(</span><span class="k">YEAR</span><span class="p">,</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="w"> </span><span class="s1">'2019-08-12 01:00:00.123456'</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2019</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">date_part</span><span class="p">(</span><span class="s1">'week'</span><span class="p">,</span><span class="w"> </span><span class="k">timestamp</span><span class="s1">'2019-08-12 01:00:00.123456'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">date_part</span><span class="p">(</span><span class="n">week</span><span class="p">,</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="w"> </span><span class="s1">'2019-08-12 01:00:00.123456'</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">33</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">date_part</span><span class="p">(</span><span class="s1">'doy'</span><span class="p">,</span><span class="w"> </span><span class="nb">DATE</span><span class="s1">'2019-08-12'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| <span class="o">|</span><span class="n">date_part</span><span class="p">(</span><span class="n">doy</span><span class="p">,</span><span class="w"> </span><span class="nb">DATE</span><span class="w"> </span><span class="s1">'2019-08-12'</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">224</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">date_part</span><span class="p">(</span><span class="s1">'SECONDS'</span><span class="p">,</span><span class="w"> </span><span class="k">timestamp</span><span class="s1">'2019-10-01 00:00:01.000001'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">date_part</span><span class="p">(</span><span class="n">SECONDS</span><span class="p">,</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="w"> </span><span class="s1">'2019-10-01 00:00:01.000001'</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="p">.</span><span class="mi">000001</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">date_part</span><span class="p">(</span><span class="s1">'days'</span><span class="p">,</span><span class="w"> </span><span class="nb">interval</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">year</span><span class="w"> </span><span class="mi">10</span><span class="w"> </span><span class="n">months</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="n">days</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">date_part</span><span class="p">(</span><span class="n">days</span><span class="p">,</span><span class="w"> </span><span class="nb">INTERVAL</span><span class="w"> </span><span class="s1">'1 years 10 months 5 days'</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">5</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">date_part</span><span class="p">(</span><span class="s1">'seconds'</span><span class="p">,</span><span class="w"> </span><span class="nb">interval</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="n">hours</span><span class="w"> </span><span class="mi">30</span><span class="w"> </span><span class="n">seconds</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="n">milliseconds</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="n">microseconds</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">date_part</span><span class="p">(</span><span class="n">seconds</span><span class="p">,</span><span class="w"> </span><span class="nb">INTERVAL</span><span class="w"> </span><span class="s1">'5 hours 30.001001 seconds'</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">30</span><span class="p">.</span><span class="mi">001001</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------------------+</span> |
| |
| <span class="c1">-- date_sub</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">date_sub</span><span class="p">(</span><span class="s1">'2016-07-30'</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------+</span> |
| <span class="o">|</span><span class="n">date_sub</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2016</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">30</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">),</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2016</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">29</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------+</span> |
| |
| <span class="c1">-- date_trunc</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">date_trunc</span><span class="p">(</span><span class="s1">'YEAR'</span><span class="p">,</span><span class="w"> </span><span class="s1">'2015-03-05T09:32:05.359'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">date_trunc</span><span class="p">(</span><span class="k">YEAR</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="mi">2015</span><span class="o">-</span><span class="mi">03</span><span class="o">-</span><span class="mi">05</span><span class="n">T09</span><span class="p">:</span><span class="mi">32</span><span class="p">:</span><span class="mi">05</span><span class="p">.</span><span class="mi">359</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2015</span><span class="o">-</span><span class="mi">01</span><span class="o">-</span><span class="mi">01</span><span class="w"> </span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">date_trunc</span><span class="p">(</span><span class="s1">'MM'</span><span class="p">,</span><span class="w"> </span><span class="s1">'2015-03-05T09:32:05.359'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">date_trunc</span><span class="p">(</span><span class="n">MM</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="mi">2015</span><span class="o">-</span><span class="mi">03</span><span class="o">-</span><span class="mi">05</span><span class="n">T09</span><span class="p">:</span><span class="mi">32</span><span class="p">:</span><span class="mi">05</span><span class="p">.</span><span class="mi">359</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2015</span><span class="o">-</span><span class="mi">03</span><span class="o">-</span><span class="mi">01</span><span class="w"> </span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">date_trunc</span><span class="p">(</span><span class="s1">'DD'</span><span class="p">,</span><span class="w"> </span><span class="s1">'2015-03-05T09:32:05.359'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">date_trunc</span><span class="p">(</span><span class="n">DD</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="mi">2015</span><span class="o">-</span><span class="mi">03</span><span class="o">-</span><span class="mi">05</span><span class="n">T09</span><span class="p">:</span><span class="mi">32</span><span class="p">:</span><span class="mi">05</span><span class="p">.</span><span class="mi">359</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2015</span><span class="o">-</span><span class="mi">03</span><span class="o">-</span><span class="mi">05</span><span class="w"> </span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">date_trunc</span><span class="p">(</span><span class="s1">'HOUR'</span><span class="p">,</span><span class="w"> </span><span class="s1">'2015-03-05T09:32:05.359'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">date_trunc</span><span class="p">(</span><span class="n">HOUR</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="mi">2015</span><span class="o">-</span><span class="mi">03</span><span class="o">-</span><span class="mi">05</span><span class="n">T09</span><span class="p">:</span><span class="mi">32</span><span class="p">:</span><span class="mi">05</span><span class="p">.</span><span class="mi">359</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2015</span><span class="o">-</span><span class="mi">03</span><span class="o">-</span><span class="mi">05</span><span class="w"> </span><span class="mi">09</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">date_trunc</span><span class="p">(</span><span class="s1">'MILLISECOND'</span><span class="p">,</span><span class="w"> </span><span class="s1">'2015-03-05T09:32:05.123456'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">date_trunc</span><span class="p">(</span><span class="n">MILLISECOND</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="mi">2015</span><span class="o">-</span><span class="mi">03</span><span class="o">-</span><span class="mi">05</span><span class="n">T09</span><span class="p">:</span><span class="mi">32</span><span class="p">:</span><span class="mi">05</span><span class="p">.</span><span class="mi">123456</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2015</span><span class="o">-</span><span class="mi">03</span><span class="o">-</span><span class="mi">05</span><span class="w"> </span><span class="mi">09</span><span class="p">:</span><span class="mi">32</span><span class="p">:...</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------------------------+</span> |
| |
| <span class="c1">-- datediff</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">datediff</span><span class="p">(</span><span class="s1">'2009-07-31'</span><span class="p">,</span><span class="w"> </span><span class="s1">'2009-07-30'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">datediff</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2009</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">31</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">),</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="mi">2009</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">30</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">datediff</span><span class="p">(</span><span class="s1">'2009-07-30'</span><span class="p">,</span><span class="w"> </span><span class="s1">'2009-07-31'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">datediff</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2009</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">30</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">),</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="mi">2009</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">31</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------------------+</span> |
| |
| <span class="c1">-- dayofweek</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">dayofweek</span><span class="p">(</span><span class="s1">'2009-07-30'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------+</span> |
| <span class="o">|</span><span class="n">dayofweek</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2009</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">30</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">5</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------+</span> |
| |
| <span class="c1">-- dayofyear</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">dayofyear</span><span class="p">(</span><span class="s1">'2016-04-09'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------+</span> |
| <span class="o">|</span><span class="n">dayofyear</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2016</span><span class="o">-</span><span class="mi">04</span><span class="o">-</span><span class="mi">09</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">100</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------+</span> |
| |
| <span class="c1">-- from_unixtime</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">from_unixtime</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="s1">'yyyy-MM-dd HH:mm:ss'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">from_unixtime</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">0</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">BIGINT</span><span class="p">),</span><span class="w"> </span><span class="n">yyyy</span><span class="o">-</span><span class="n">MM</span><span class="o">-</span><span class="n">dd</span><span class="w"> </span><span class="n">HH</span><span class="p">:</span><span class="n">mm</span><span class="p">:</span><span class="n">ss</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1970</span><span class="o">-</span><span class="mi">01</span><span class="o">-</span><span class="mi">01</span><span class="w"> </span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">from_unixtime</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">from_unixtime</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">0</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">BIGINT</span><span class="p">),</span><span class="w"> </span><span class="n">yyyy</span><span class="o">-</span><span class="n">MM</span><span class="o">-</span><span class="n">dd</span><span class="w"> </span><span class="n">HH</span><span class="p">:</span><span class="n">mm</span><span class="p">:</span><span class="n">ss</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1970</span><span class="o">-</span><span class="mi">01</span><span class="o">-</span><span class="mi">01</span><span class="w"> </span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------+</span> |
| |
| <span class="c1">-- from_utc_timestamp</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">from_utc_timestamp</span><span class="p">(</span><span class="s1">'2016-08-31'</span><span class="p">,</span><span class="w"> </span><span class="s1">'Asia/Seoul'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">from_utc_timestamp</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2016</span><span class="o">-</span><span class="mi">08</span><span class="o">-</span><span class="mi">31</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="p">),</span><span class="w"> </span><span class="n">Asia</span><span class="o">/</span><span class="n">Seoul</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2016</span><span class="o">-</span><span class="mi">08</span><span class="o">-</span><span class="mi">31</span><span class="w"> </span><span class="mi">09</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------------------+</span> |
| |
| <span class="c1">-- hour</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">hour</span><span class="p">(</span><span class="s1">'2009-07-30 12:58:59'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------+</span> |
| <span class="o">|</span><span class="n">hour</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2009</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">30</span><span class="w"> </span><span class="mi">12</span><span class="p">:</span><span class="mi">58</span><span class="p">:</span><span class="mi">59</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">12</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------+</span> |
| |
| <span class="c1">-- last_day</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">last_day</span><span class="p">(</span><span class="s1">'2009-01-12'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------+</span> |
| <span class="o">|</span><span class="n">last_day</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2009</span><span class="o">-</span><span class="mi">01</span><span class="o">-</span><span class="mi">12</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2009</span><span class="o">-</span><span class="mi">01</span><span class="o">-</span><span class="mi">31</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------+</span> |
| |
| <span class="c1">-- make_date</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">make_date</span><span class="p">(</span><span class="mi">2013</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="mi">15</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------+</span> |
| <span class="o">|</span><span class="n">make_date</span><span class="p">(</span><span class="mi">2013</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="mi">15</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2013</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">15</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">make_date</span><span class="p">(</span><span class="mi">2019</span><span class="p">,</span><span class="w"> </span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------+</span> |
| <span class="o">|</span><span class="n">make_date</span><span class="p">(</span><span class="mi">2019</span><span class="p">,</span><span class="w"> </span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">null</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">make_date</span><span class="p">(</span><span class="mi">2019</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="k">NULL</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------+</span> |
| <span class="o">|</span><span class="n">make_date</span><span class="p">(</span><span class="mi">2019</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="k">NULL</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">INT</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">null</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">make_date</span><span class="p">(</span><span class="mi">2019</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">30</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------+</span> |
| <span class="o">|</span><span class="n">make_date</span><span class="p">(</span><span class="mi">2019</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">30</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">null</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------+</span> |
| |
| <span class="c1">-- make_timestamp</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">make_timestamp</span><span class="p">(</span><span class="mi">2014</span><span class="p">,</span><span class="w"> </span><span class="mi">12</span><span class="p">,</span><span class="w"> </span><span class="mi">28</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="mi">45</span><span class="p">.</span><span class="mi">887</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">make_timestamp</span><span class="p">(</span><span class="mi">2014</span><span class="p">,</span><span class="w"> </span><span class="mi">12</span><span class="p">,</span><span class="w"> </span><span class="mi">28</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="mi">45</span><span class="p">.</span><span class="mi">887</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DECIMAL</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span><span class="mi">6</span><span class="p">)))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2014</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">28</span><span class="w"> </span><span class="mi">06</span><span class="p">:</span><span class="mi">30</span><span class="p">:...</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">make_timestamp</span><span class="p">(</span><span class="mi">2014</span><span class="p">,</span><span class="w"> </span><span class="mi">12</span><span class="p">,</span><span class="w"> </span><span class="mi">28</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="mi">45</span><span class="p">.</span><span class="mi">887</span><span class="p">,</span><span class="w"> </span><span class="s1">'CET'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">make_timestamp</span><span class="p">(</span><span class="mi">2014</span><span class="p">,</span><span class="w"> </span><span class="mi">12</span><span class="p">,</span><span class="w"> </span><span class="mi">28</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="mi">45</span><span class="p">.</span><span class="mi">887</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DECIMAL</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span><span class="mi">6</span><span class="p">)),</span><span class="w"> </span><span class="n">CET</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2014</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">28</span><span class="w"> </span><span class="mi">05</span><span class="p">:</span><span class="mi">30</span><span class="p">:...</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">make_timestamp</span><span class="p">(</span><span class="mi">2019</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="mi">23</span><span class="p">,</span><span class="w"> </span><span class="mi">59</span><span class="p">,</span><span class="w"> </span><span class="mi">60</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">make_timestamp</span><span class="p">(</span><span class="mi">2019</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="mi">23</span><span class="p">,</span><span class="w"> </span><span class="mi">59</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="mi">60</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DECIMAL</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span><span class="mi">6</span><span class="p">)))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2019</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">01</span><span class="w"> </span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">make_timestamp</span><span class="p">(</span><span class="mi">2019</span><span class="p">,</span><span class="w"> </span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">11</span><span class="p">,</span><span class="w"> </span><span class="mi">12</span><span class="p">,</span><span class="w"> </span><span class="s1">'PST'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">make_timestamp</span><span class="p">(</span><span class="mi">2019</span><span class="p">,</span><span class="w"> </span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">11</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="mi">12</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DECIMAL</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span><span class="mi">6</span><span class="p">)),</span><span class="w"> </span><span class="n">PST</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">null</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">make_timestamp</span><span class="p">(</span><span class="k">null</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="mi">22</span><span class="p">,</span><span class="w"> </span><span class="mi">15</span><span class="p">,</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">make_timestamp</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="k">NULL</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">INT</span><span class="p">),</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="mi">22</span><span class="p">,</span><span class="w"> </span><span class="mi">15</span><span class="p">,</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="mi">0</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DECIMAL</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span><span class="mi">6</span><span class="p">)))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">null</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------------------------------+</span> |
| |
| <span class="c1">-- minute</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">minute</span><span class="p">(</span><span class="s1">'2009-07-30 12:58:59'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------+</span> |
| <span class="o">|</span><span class="k">minute</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2009</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">30</span><span class="w"> </span><span class="mi">12</span><span class="p">:</span><span class="mi">58</span><span class="p">:</span><span class="mi">59</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">58</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------+</span> |
| |
| <span class="c1">-- month</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">month</span><span class="p">(</span><span class="s1">'2016-07-30'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------+</span> |
| <span class="o">|</span><span class="k">month</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2016</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">30</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">7</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------+</span> |
| |
| <span class="c1">-- months_between</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">months_between</span><span class="p">(</span><span class="s1">'1997-02-28 10:30:00'</span><span class="p">,</span><span class="w"> </span><span class="s1">'1996-10-30'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">months_between</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">1997</span><span class="o">-</span><span class="mi">02</span><span class="o">-</span><span class="mi">28</span><span class="w"> </span><span class="mi">10</span><span class="p">:</span><span class="mi">30</span><span class="p">:</span><span class="mi">00</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="p">),</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="mi">1996</span><span class="o">-</span><span class="mi">10</span><span class="o">-</span><span class="mi">30</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="p">),</span><span class="w"> </span><span class="k">true</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="p">.</span><span class="mi">94959677</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------------------------------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">months_between</span><span class="p">(</span><span class="s1">'1997-02-28 10:30:00'</span><span class="p">,</span><span class="w"> </span><span class="s1">'1996-10-30'</span><span class="p">,</span><span class="w"> </span><span class="k">false</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">months_between</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">1997</span><span class="o">-</span><span class="mi">02</span><span class="o">-</span><span class="mi">28</span><span class="w"> </span><span class="mi">10</span><span class="p">:</span><span class="mi">30</span><span class="p">:</span><span class="mi">00</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="p">),</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="mi">1996</span><span class="o">-</span><span class="mi">10</span><span class="o">-</span><span class="mi">30</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="p">),</span><span class="w"> </span><span class="k">false</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="p">.</span><span class="mi">9495967741935485</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------------------------------------------------------+</span> |
| |
| <span class="c1">-- next_day</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">next_day</span><span class="p">(</span><span class="s1">'2015-01-14'</span><span class="p">,</span><span class="w"> </span><span class="s1">'TU'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------+</span> |
| <span class="o">|</span><span class="n">next_day</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2015</span><span class="o">-</span><span class="mi">01</span><span class="o">-</span><span class="mi">14</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">),</span><span class="w"> </span><span class="n">TU</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2015</span><span class="o">-</span><span class="mi">01</span><span class="o">-</span><span class="mi">20</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------+</span> |
| |
| <span class="c1">-- now</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">now</span><span class="p">();</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="n">now</span><span class="p">()</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------+</span> |
| <span class="o">|</span><span class="mi">2022</span><span class="o">-</span><span class="mi">02</span><span class="o">-</span><span class="mi">07</span><span class="w"> </span><span class="mi">00</span><span class="p">:</span><span class="mi">17</span><span class="p">:...</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------+</span> |
| |
| <span class="c1">-- quarter</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">quarter</span><span class="p">(</span><span class="s1">'2016-08-31'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| <span class="o">|</span><span class="n">quarter</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2016</span><span class="o">-</span><span class="mi">08</span><span class="o">-</span><span class="mi">31</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| |
| <span class="c1">-- second</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">second</span><span class="p">(</span><span class="s1">'2009-07-30 12:58:59'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------+</span> |
| <span class="o">|</span><span class="k">second</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2009</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">30</span><span class="w"> </span><span class="mi">12</span><span class="p">:</span><span class="mi">58</span><span class="p">:</span><span class="mi">59</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">59</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------+</span> |
| |
| <span class="c1">-- timestamp_micros</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">timestamp_micros</span><span class="p">(</span><span class="mi">1230219000123123</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------+</span> |
| <span class="o">|</span><span class="n">timestamp_micros</span><span class="p">(</span><span class="mi">1230219000123123</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2008</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">25</span><span class="w"> </span><span class="mi">15</span><span class="p">:</span><span class="mi">30</span><span class="p">:...</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------+</span> |
| |
| <span class="c1">-- timestamp_millis</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">timestamp_millis</span><span class="p">(</span><span class="mi">1230219000123</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------+</span> |
| <span class="o">|</span><span class="n">timestamp_millis</span><span class="p">(</span><span class="mi">1230219000123</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2008</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">25</span><span class="w"> </span><span class="mi">15</span><span class="p">:</span><span class="mi">30</span><span class="p">:...</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------+</span> |
| |
| <span class="c1">-- timestamp_seconds</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">timestamp_seconds</span><span class="p">(</span><span class="mi">1230219000</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------+</span> |
| <span class="o">|</span><span class="n">timestamp_seconds</span><span class="p">(</span><span class="mi">1230219000</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2008</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">25</span><span class="w"> </span><span class="mi">15</span><span class="p">:</span><span class="mi">30</span><span class="p">:</span><span class="mi">00</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">timestamp_seconds</span><span class="p">(</span><span class="mi">1230219000</span><span class="p">.</span><span class="mi">123</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| <span class="o">|</span><span class="n">timestamp_seconds</span><span class="p">(</span><span class="mi">1230219000</span><span class="p">.</span><span class="mi">123</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2008</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">25</span><span class="w"> </span><span class="mi">15</span><span class="p">:</span><span class="mi">30</span><span class="p">:...</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| |
| <span class="c1">-- to_date</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">to_date</span><span class="p">(</span><span class="s1">'2009-07-30 04:17:52'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------+</span> |
| <span class="o">|</span><span class="n">to_date</span><span class="p">(</span><span class="mi">2009</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">30</span><span class="w"> </span><span class="mi">04</span><span class="p">:</span><span class="mi">17</span><span class="p">:</span><span class="mi">52</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2009</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">30</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">to_date</span><span class="p">(</span><span class="s1">'2016-12-31'</span><span class="p">,</span><span class="w"> </span><span class="s1">'yyyy-MM-dd'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------+</span> |
| <span class="o">|</span><span class="n">to_date</span><span class="p">(</span><span class="mi">2016</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span><span class="p">,</span><span class="w"> </span><span class="n">yyyy</span><span class="o">-</span><span class="n">MM</span><span class="o">-</span><span class="n">dd</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2016</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------+</span> |
| |
| <span class="c1">-- to_timestamp</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">to_timestamp</span><span class="p">(</span><span class="s1">'2016-12-31 00:12:00'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| <span class="o">|</span><span class="n">to_timestamp</span><span class="p">(</span><span class="mi">2016</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span><span class="w"> </span><span class="mi">00</span><span class="p">:</span><span class="mi">12</span><span class="p">:</span><span class="mi">00</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2016</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span><span class="w"> </span><span class="mi">00</span><span class="p">:</span><span class="mi">12</span><span class="p">:</span><span class="mi">00</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">to_timestamp</span><span class="p">(</span><span class="s1">'2016-12-31'</span><span class="p">,</span><span class="w"> </span><span class="s1">'yyyy-MM-dd'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------+</span> |
| <span class="o">|</span><span class="n">to_timestamp</span><span class="p">(</span><span class="mi">2016</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span><span class="p">,</span><span class="w"> </span><span class="n">yyyy</span><span class="o">-</span><span class="n">MM</span><span class="o">-</span><span class="n">dd</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2016</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">31</span><span class="w"> </span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------+</span> |
| |
| <span class="c1">-- to_unix_timestamp</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">to_unix_timestamp</span><span class="p">(</span><span class="s1">'2016-04-08'</span><span class="p">,</span><span class="w"> </span><span class="s1">'yyyy-MM-dd'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------+</span> |
| <span class="o">|</span><span class="n">to_unix_timestamp</span><span class="p">(</span><span class="mi">2016</span><span class="o">-</span><span class="mi">04</span><span class="o">-</span><span class="mi">08</span><span class="p">,</span><span class="w"> </span><span class="n">yyyy</span><span class="o">-</span><span class="n">MM</span><span class="o">-</span><span class="n">dd</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1460073600</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------+</span> |
| |
| <span class="c1">-- to_utc_timestamp</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">to_utc_timestamp</span><span class="p">(</span><span class="s1">'2016-08-31'</span><span class="p">,</span><span class="w"> </span><span class="s1">'Asia/Seoul'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">to_utc_timestamp</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2016</span><span class="o">-</span><span class="mi">08</span><span class="o">-</span><span class="mi">31</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="p">),</span><span class="w"> </span><span class="n">Asia</span><span class="o">/</span><span class="n">Seoul</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2016</span><span class="o">-</span><span class="mi">08</span><span class="o">-</span><span class="mi">30</span><span class="w"> </span><span class="mi">15</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------------+</span> |
| |
| <span class="c1">-- trunc</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">trunc</span><span class="p">(</span><span class="s1">'2019-08-04'</span><span class="p">,</span><span class="w"> </span><span class="s1">'week'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------+</span> |
| <span class="o">|</span><span class="n">trunc</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2019</span><span class="o">-</span><span class="mi">08</span><span class="o">-</span><span class="mi">04</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">),</span><span class="w"> </span><span class="n">week</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2019</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">29</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">trunc</span><span class="p">(</span><span class="s1">'2019-08-04'</span><span class="p">,</span><span class="w"> </span><span class="s1">'quarter'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------+</span> |
| <span class="o">|</span><span class="n">trunc</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2019</span><span class="o">-</span><span class="mi">08</span><span class="o">-</span><span class="mi">04</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">),</span><span class="w"> </span><span class="n">quarter</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2019</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">01</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">trunc</span><span class="p">(</span><span class="s1">'2009-02-12'</span><span class="p">,</span><span class="w"> </span><span class="s1">'MM'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------+</span> |
| <span class="o">|</span><span class="n">trunc</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2009</span><span class="o">-</span><span class="mi">02</span><span class="o">-</span><span class="mi">12</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">),</span><span class="w"> </span><span class="n">MM</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2009</span><span class="o">-</span><span class="mi">02</span><span class="o">-</span><span class="mi">01</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">trunc</span><span class="p">(</span><span class="s1">'2015-10-27'</span><span class="p">,</span><span class="w"> </span><span class="s1">'YEAR'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------+</span> |
| <span class="o">|</span><span class="n">trunc</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2015</span><span class="o">-</span><span class="mi">10</span><span class="o">-</span><span class="mi">27</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">),</span><span class="w"> </span><span class="k">YEAR</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2015</span><span class="o">-</span><span class="mi">01</span><span class="o">-</span><span class="mi">01</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------------+</span> |
| |
| <span class="c1">-- unix_date</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">unix_date</span><span class="p">(</span><span class="nb">DATE</span><span class="p">(</span><span class="ss">"1970-01-02"</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------+</span> |
| <span class="o">|</span><span class="n">unix_date</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">1970</span><span class="o">-</span><span class="mi">01</span><span class="o">-</span><span class="mi">02</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------+</span> |
| |
| <span class="c1">-- unix_micros</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">unix_micros</span><span class="p">(</span><span class="k">TIMESTAMP</span><span class="p">(</span><span class="s1">'1970-01-01 00:00:01Z'</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">unix_micros</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">1970</span><span class="o">-</span><span class="mi">01</span><span class="o">-</span><span class="mi">01</span><span class="w"> </span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">01</span><span class="n">Z</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1000000</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------+</span> |
| |
| <span class="c1">-- unix_millis</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">unix_millis</span><span class="p">(</span><span class="k">TIMESTAMP</span><span class="p">(</span><span class="s1">'1970-01-01 00:00:01Z'</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">unix_millis</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">1970</span><span class="o">-</span><span class="mi">01</span><span class="o">-</span><span class="mi">01</span><span class="w"> </span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">01</span><span class="n">Z</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1000</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------------------------+</span> |
| |
| <span class="c1">-- unix_seconds</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">unix_seconds</span><span class="p">(</span><span class="k">TIMESTAMP</span><span class="p">(</span><span class="s1">'1970-01-01 00:00:01Z'</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">unix_seconds</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">1970</span><span class="o">-</span><span class="mi">01</span><span class="o">-</span><span class="mi">01</span><span class="w"> </span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">01</span><span class="n">Z</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------+</span> |
| |
| <span class="c1">-- unix_timestamp</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">unix_timestamp</span><span class="p">();</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">unix_timestamp</span><span class="p">(</span><span class="k">current_timestamp</span><span class="p">(),</span><span class="w"> </span><span class="n">yyyy</span><span class="o">-</span><span class="n">MM</span><span class="o">-</span><span class="n">dd</span><span class="w"> </span><span class="n">HH</span><span class="p">:</span><span class="n">mm</span><span class="p">:</span><span class="n">ss</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1644193021</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">unix_timestamp</span><span class="p">(</span><span class="s1">'2016-04-08'</span><span class="p">,</span><span class="w"> </span><span class="s1">'yyyy-MM-dd'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------+</span> |
| <span class="o">|</span><span class="n">unix_timestamp</span><span class="p">(</span><span class="mi">2016</span><span class="o">-</span><span class="mi">04</span><span class="o">-</span><span class="mi">08</span><span class="p">,</span><span class="w"> </span><span class="n">yyyy</span><span class="o">-</span><span class="n">MM</span><span class="o">-</span><span class="n">dd</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1460073600</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------+</span> |
| |
| <span class="c1">-- weekday</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">weekday</span><span class="p">(</span><span class="s1">'2009-07-30'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| <span class="o">|</span><span class="n">weekday</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2009</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">30</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| |
| <span class="c1">-- weekofyear</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">weekofyear</span><span class="p">(</span><span class="s1">'2008-02-20'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------+</span> |
| <span class="o">|</span><span class="n">weekofyear</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2008</span><span class="o">-</span><span class="mi">02</span><span class="o">-</span><span class="mi">20</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">8</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------+</span> |
| |
| <span class="c1">-- year</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="k">year</span><span class="p">(</span><span class="s1">'2016-07-30'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------+</span> |
| <span class="o">|</span><span class="k">year</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="mi">2016</span><span class="o">-</span><span class="mi">07</span><span class="o">-</span><span class="mi">30</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">2016</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------+</span> |
| </code></pre></div> |
| |
| <h3 id="json-functions">JSON Functions</h3> |
| <table class="table"> |
| <thead> |
| <tr> |
| <th style="width:25%">Function</th> |
| <th>Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>from_json(jsonStr, schema[, options])</td> |
| <td>Returns a struct value with the given `jsonStr` and `schema`.</td> |
| </tr> |
| <tr> |
| <td>get_json_object(json_txt, path)</td> |
| <td>Extracts a json object from `path`.</td> |
| </tr> |
| <tr> |
| <td>json_array_length(jsonArray)</td> |
| <td>Returns the number of elements in the outmost JSON array.</td> |
| </tr> |
| <tr> |
| <td>json_object_keys(json_object)</td> |
| <td>Returns all the keys of the outmost JSON object as an array.</td> |
| </tr> |
| <tr> |
| <td>json_tuple(jsonStr, p1, p2, ..., pn)</td> |
| <td>Returns a tuple like the function get_json_object, but it takes multiple names. All the input parameters and output column types are string.</td> |
| </tr> |
| <tr> |
| <td>schema_of_json(json[, options])</td> |
| <td>Returns schema in the DDL format of JSON string.</td> |
| </tr> |
| <tr> |
| <td>to_json(expr[, options])</td> |
| <td>Returns a JSON string with a given struct value</td> |
| </tr> |
| </tbody> |
| </table> |
| |
| <h4 id="examples-4">Examples</h4> |
| <div class="codehilite"><pre><span></span><code><span class="c1">-- from_json</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">from_json</span><span class="p">(</span><span class="s1">'{"a":1, "b":0.8}'</span><span class="p">,</span><span class="w"> </span><span class="s1">'a INT, b DOUBLE'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------+</span> |
| <span class="o">|</span><span class="n">from_json</span><span class="p">(</span><span class="err">{</span><span class="ss">"a"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="ss">"b"</span><span class="p">:</span><span class="mi">0</span><span class="p">.</span><span class="mi">8</span><span class="err">}</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">.</span><span class="mi">8</span><span class="err">}</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">from_json</span><span class="p">(</span><span class="s1">'{"time":"26/08/2015"}'</span><span class="p">,</span><span class="w"> </span><span class="s1">'time Timestamp'</span><span class="p">,</span><span class="w"> </span><span class="k">map</span><span class="p">(</span><span class="s1">'timestampFormat'</span><span class="p">,</span><span class="w"> </span><span class="s1">'dd/MM/yyyy'</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------+</span> |
| <span class="o">|</span><span class="n">from_json</span><span class="p">(</span><span class="err">{</span><span class="ss">"time"</span><span class="p">:</span><span class="ss">"26/08/2015"</span><span class="err">}</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="mi">2015</span><span class="o">-</span><span class="mi">08</span><span class="o">-</span><span class="mi">26</span><span class="w"> </span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="p">...</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------+</span> |
| |
| <span class="c1">-- get_json_object</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">get_json_object</span><span class="p">(</span><span class="s1">'{"a":"b"}'</span><span class="p">,</span><span class="w"> </span><span class="s1">'$.a'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------+</span> |
| <span class="o">|</span><span class="n">get_json_object</span><span class="p">(</span><span class="err">{</span><span class="ss">"a"</span><span class="p">:</span><span class="ss">"b"</span><span class="err">}</span><span class="p">,</span><span class="w"> </span><span class="err">$</span><span class="p">.</span><span class="n">a</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="n">b</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------------+</span> |
| |
| <span class="c1">-- json_array_length</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">json_array_length</span><span class="p">(</span><span class="s1">'[1,2,3,4]'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------+</span> |
| <span class="o">|</span><span class="n">json_array_length</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">])</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">4</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">json_array_length</span><span class="p">(</span><span class="s1">'[1,2,3,{"f1":1,"f2":[5,6]},4]'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">json_array_length</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="err">{</span><span class="ss">"f1"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="ss">"f2"</span><span class="p">:[</span><span class="mi">5</span><span class="p">,</span><span class="mi">6</span><span class="p">]</span><span class="err">}</span><span class="p">,</span><span class="mi">4</span><span class="p">])</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">5</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">------------------------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">json_array_length</span><span class="p">(</span><span class="s1">'[1,2'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------+</span> |
| <span class="o">|</span><span class="n">json_array_length</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="k">null</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------+</span> |
| |
| <span class="c1">-- json_object_keys</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">json_object_keys</span><span class="p">(</span><span class="s1">'{}'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------+</span> |
| <span class="o">|</span><span class="n">json_object_keys</span><span class="p">(</span><span class="err">{}</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">json_object_keys</span><span class="p">(</span><span class="s1">'{"key": "value"}'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------+</span> |
| <span class="o">|</span><span class="n">json_object_keys</span><span class="p">(</span><span class="err">{</span><span class="ss">"key"</span><span class="p">:</span><span class="w"> </span><span class="ss">"value"</span><span class="err">}</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="k">key</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">json_object_keys</span><span class="p">(</span><span class="s1">'{"f1":"abc","f2":{"f3":"a", "f4":"b"}}'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">json_object_keys</span><span class="p">(</span><span class="err">{</span><span class="ss">"f1"</span><span class="p">:</span><span class="ss">"abc"</span><span class="p">,</span><span class="ss">"f2"</span><span class="p">:</span><span class="err">{</span><span class="ss">"f3"</span><span class="p">:</span><span class="ss">"a"</span><span class="p">,</span><span class="w"> </span><span class="ss">"f4"</span><span class="p">:</span><span class="ss">"b"</span><span class="err">}}</span><span class="p">)</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="p">[</span><span class="n">f1</span><span class="p">,</span><span class="w"> </span><span class="n">f2</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">--------------------------------------------------------+</span> |
| |
| <span class="c1">-- json_tuple</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">json_tuple</span><span class="p">(</span><span class="s1">'{"a":1, "b":2}'</span><span class="p">,</span><span class="w"> </span><span class="s1">'a'</span><span class="p">,</span><span class="w"> </span><span class="s1">'b'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---+---+</span> |
| <span class="o">|</span><span class="w"> </span><span class="n">c0</span><span class="o">|</span><span class="w"> </span><span class="n">c1</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---+---+</span> |
| <span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---+---+</span> |
| |
| <span class="c1">-- schema_of_json</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">schema_of_json</span><span class="p">(</span><span class="s1">'[{"col":0}]'</span><span class="p">);</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------+</span> |
| <span class="o">|</span><span class="n">schema_of_json</span><span class="p">([</span><span class="err">{</span><span class="ss">"col"</span><span class="p">:</span><span class="mi">0</span><span class="err">}</span><span class="p">])</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="nb">ARRAY</span><span class="o"><</span><span class="n">STRUCT</span><span class="o"><`</span><span class="n">col</span><span class="p">...</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">schema_of_json</span><span class="p">(</span><span class="s1">'[{"col":01}]'</span><span class="p">,</span><span class="w"> </span><span class="k">map</span><span class="p">(</span><span class="s1">'allowNumericLeadingZeros'</span><span class="p">,</span><span class="w"> </span><span class="s1">'true'</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------+</span> |
| <span class="o">|</span><span class="n">schema_of_json</span><span class="p">([</span><span class="err">{</span><span class="ss">"col"</span><span class="p">:</span><span class="mi">01</span><span class="err">}</span><span class="p">])</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="nb">ARRAY</span><span class="o"><</span><span class="n">STRUCT</span><span class="o"><`</span><span class="n">col</span><span class="p">...</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">----------------------------+</span> |
| |
| <span class="c1">-- to_json</span> |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">to_json</span><span class="p">(</span><span class="n">named_struct</span><span class="p">(</span><span class="s1">'a'</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="s1">'b'</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| <span class="o">|</span><span class="n">to_json</span><span class="p">(</span><span class="n">named_struct</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="ss">"a"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="ss">"b"</span><span class="p">:</span><span class="mi">2</span><span class="err">}</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">---------------------------------+</span> |
| |
| <span class="k">SELECT</span><span class="w"> </span><span class="n">to_json</span><span class="p">(</span><span class="n">named_struct</span><span class="p">(</span><span class="s1">'time'</span><span class="p">,</span><span class="w"> </span><span class="n">to_timestamp</span><span class="p">(</span><span class="s1">'2015-08-26'</span><span class="p">,</span><span class="w"> </span><span class="s1">'yyyy-MM-dd'</span><span class="p">)),</span><span class="w"> </span><span class="k">map</span><span class="p">(</span><span class="s1">'timestampFormat'</span><span class="p">,</span><span class="w"> </span><span class="s1">'dd/MM/yyyy'</span><span class="p">));</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="n">to_json</span><span class="p">(</span><span class="n">named_struct</span><span class="p">(</span><span class="k">time</span><span class="p">,</span><span class="w"> </span><span class="n">to_timestamp</span><span class="p">(</span><span class="mi">2015</span><span class="o">-</span><span class="mi">08</span><span class="o">-</span><span class="mi">26</span><span class="p">,</span><span class="w"> </span><span class="n">yyyy</span><span class="o">-</span><span class="n">MM</span><span class="o">-</span><span class="n">dd</span><span class="p">)))</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-----------------------------------------------------------------+</span> |
| <span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="ss">"time"</span><span class="p">:</span><span class="ss">"26/08/20...|</span> |
| <span class="ss">+-----------------------------------------------------------------+</span> |
| |
| <span class="ss">SELECT to_json(array(named_struct('a', 1, 'b', 2)));</span> |
| <span class="ss">+----------------------------------------+</span> |
| <span class="ss">|to_json(array(named_struct(a, 1, b, 2)))|</span> |
| <span class="ss">+----------------------------------------+</span> |
| <span class="ss">| [{"</span><span class="n">a</span><span class="ss">":1,"</span><span class="n">b</span><span class="ss">":2}]|</span> |
| <span class="ss">+----------------------------------------+</span> |
| |
| <span class="ss">SELECT to_json(map('a', named_struct('b', 1)));</span> |
| <span class="ss">+-----------------------------------+</span> |
| <span class="ss">|to_json(map(a, named_struct(b, 1)))|</span> |
| <span class="ss">+-----------------------------------+</span> |
| <span class="ss">| {"</span><span class="n">a</span><span class="ss">":{"</span><span class="n">b</span><span class="ss">":1}}|</span> |
| <span class="ss">+-----------------------------------+</span> |
| |
| <span class="ss">SELECT to_json(map(named_struct('a', 1),named_struct('b', 2)));</span> |
| <span class="ss">+----------------------------------------------------+</span> |
| <span class="ss">|to_json(map(named_struct(a, 1), named_struct(b, 2)))|</span> |
| <span class="ss">+----------------------------------------------------+</span> |
| <span class="ss">| {"</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="ss">":{"</span><span class="n">b</span><span class="ss">":2}}|</span> |
| <span class="ss">+----------------------------------------------------+</span> |
| |
| <span class="ss">SELECT to_json(map('a', 1));</span> |
| <span class="ss">+------------------+</span> |
| <span class="ss">|to_json(map(a, 1))|</span> |
| <span class="ss">+------------------+</span> |
| <span class="ss">| {"</span><span class="n">a</span><span class="ss">":1}|</span> |
| <span class="ss">+------------------+</span> |
| |
| <span class="ss">SELECT to_json(array((map('a', 1))));</span> |
| <span class="ss">+-------------------------+</span> |
| <span class="ss">|to_json(array(map(a, 1)))|</span> |
| <span class="ss">+-------------------------+</span> |
| <span class="ss">| [{"</span><span class="n">a</span><span class="err">"</span><span class="p">:</span><span class="mi">1</span><span class="err">}</span><span class="p">]</span><span class="o">|</span><span class="w"></span> |
| <span class="o">+</span><span class="c1">-------------------------+</span> |
| </code></pre></div> |
| |
| |
| |
| </div> |
| |
| <!-- /container --> |
| </div> |
| |
| <script src="js/vendor/jquery-3.5.1.min.js"></script> |
| <script src="js/vendor/bootstrap.bundle.min.js"></script> |
| <script src="js/vendor/anchor.min.js"></script> |
| <script src="js/main.js"></script> |
| <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script> |
| <script type="text/javascript"> |
| // DocSearch is entirely free and automated. DocSearch is built in two parts: |
| // 1. a crawler which we run on our own infrastructure every 24 hours. It follows every link |
| // in your website and extract content from every page it traverses. It then pushes this |
| // content to an Algolia index. |
| // 2. a JavaScript snippet to be inserted in your website that will bind this Algolia index |
| // to your search input and display its results in a dropdown UI. If you want to find more |
| // details on how works DocSearch, check the docs of DocSearch. |
| docsearch({ |
| apiKey: 'b18ca3732c502995563043aa17bc6ecb', |
| indexName: 'apache_spark', |
| inputSelector: '#docsearch-input', |
| enhancedSearchInput: true, |
| algoliaOptions: { |
| 'facetFilters': ["version:3.1.4"] |
| }, |
| debug: false // Set debug to true if you want to inspect the dropdown |
| }); |
| |
| </script> |
| |
| <!-- MathJax Section --> |
| <script type="text/x-mathjax-config"> |
| MathJax.Hub.Config({ |
| TeX: { equationNumbers: { autoNumber: "AMS" } } |
| }); |
| </script> |
| <script> |
| // Note that we load MathJax this way to work with local file (file://), HTTP and HTTPS. |
| // We could use "//cdn.mathjax...", but that won't support "file://". |
| (function(d, script) { |
| script = d.createElement('script'); |
| script.type = 'text/javascript'; |
| script.async = true; |
| script.onload = function(){ |
| MathJax.Hub.Config({ |
| tex2jax: { |
| inlineMath: [ ["$", "$"], ["\\\\(","\\\\)"] ], |
| displayMath: [ ["$$","$$"], ["\\[", "\\]"] ], |
| processEscapes: true, |
| skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'] |
| } |
| }); |
| }; |
| script.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + |
| 'cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js' + |
| '?config=TeX-AMS-MML_HTMLorMML'; |
| d.getElementsByTagName('head')[0].appendChild(script); |
| }(document)); |
| </script> |
| </body> |
| </html> |