Commit 752b948d authored by Robert Haas's avatar Robert Haas

Document which aggregates support partial mode.

David Rowley, reviewed by Tomas Vondra
parent 5c3c3cd0
...@@ -12678,12 +12678,13 @@ NULL baz</literallayout>(3 rows)</entry> ...@@ -12678,12 +12678,13 @@ NULL baz</literallayout>(3 rows)</entry>
<table id="functions-aggregate-table"> <table id="functions-aggregate-table">
<title>General-Purpose Aggregate Functions</title> <title>General-Purpose Aggregate Functions</title>
<tgroup cols="4"> <tgroup cols="5">
<thead> <thead>
<row> <row>
<entry>Function</entry> <entry>Function</entry>
<entry>Argument Type(s)</entry> <entry>Argument Type(s)</entry>
<entry>Return Type</entry> <entry>Return Type</entry>
<entry>Partial Mode</entry>
<entry>Description</entry> <entry>Description</entry>
</row> </row>
</thead> </thead>
...@@ -12702,6 +12703,7 @@ NULL baz</literallayout>(3 rows)</entry> ...@@ -12702,6 +12703,7 @@ NULL baz</literallayout>(3 rows)</entry>
<entry> <entry>
array of the argument type array of the argument type
</entry> </entry>
<entry>No</entry>
<entry>input values, including nulls, concatenated into an array</entry> <entry>input values, including nulls, concatenated into an array</entry>
</row> </row>
...@@ -12715,6 +12717,7 @@ NULL baz</literallayout>(3 rows)</entry> ...@@ -12715,6 +12717,7 @@ NULL baz</literallayout>(3 rows)</entry>
<entry> <entry>
same as argument data type same as argument data type
</entry> </entry>
<entry>No</entry>
<entry>input arrays concatenated into array of one higher dimension <entry>input arrays concatenated into array of one higher dimension
(inputs must all have same dimensionality, (inputs must all have same dimensionality,
and cannot be empty or NULL)</entry> and cannot be empty or NULL)</entry>
...@@ -12740,6 +12743,7 @@ NULL baz</literallayout>(3 rows)</entry> ...@@ -12740,6 +12743,7 @@ NULL baz</literallayout>(3 rows)</entry>
<type>double precision</type> for a floating-point argument, <type>double precision</type> for a floating-point argument,
otherwise the same as the argument data type otherwise the same as the argument data type
</entry> </entry>
<entry>All types apart from floating-point types</entry>
<entry>the average (arithmetic mean) of all input values</entry> <entry>the average (arithmetic mean) of all input values</entry>
</row> </row>
...@@ -12757,6 +12761,7 @@ NULL baz</literallayout>(3 rows)</entry> ...@@ -12757,6 +12761,7 @@ NULL baz</literallayout>(3 rows)</entry>
<entry> <entry>
same as argument data type same as argument data type
</entry> </entry>
<entry>Yes</entry>
<entry>the bitwise AND of all non-null input values, or null if none</entry> <entry>the bitwise AND of all non-null input values, or null if none</entry>
</row> </row>
...@@ -12774,6 +12779,7 @@ NULL baz</literallayout>(3 rows)</entry> ...@@ -12774,6 +12779,7 @@ NULL baz</literallayout>(3 rows)</entry>
<entry> <entry>
same as argument data type same as argument data type
</entry> </entry>
<entry>Yes</entry>
<entry>the bitwise OR of all non-null input values, or null if none</entry> <entry>the bitwise OR of all non-null input values, or null if none</entry>
</row> </row>
...@@ -12790,6 +12796,7 @@ NULL baz</literallayout>(3 rows)</entry> ...@@ -12790,6 +12796,7 @@ NULL baz</literallayout>(3 rows)</entry>
<entry> <entry>
<type>bool</type> <type>bool</type>
</entry> </entry>
<entry>Yes</entry>
<entry>true if all input values are true, otherwise false</entry> <entry>true if all input values are true, otherwise false</entry>
</row> </row>
...@@ -12806,6 +12813,7 @@ NULL baz</literallayout>(3 rows)</entry> ...@@ -12806,6 +12813,7 @@ NULL baz</literallayout>(3 rows)</entry>
<entry> <entry>
<type>bool</type> <type>bool</type>
</entry> </entry>
<entry>Yes</entry>
<entry>true if at least one input value is true, otherwise false</entry> <entry>true if at least one input value is true, otherwise false</entry>
</row> </row>
...@@ -12818,6 +12826,7 @@ NULL baz</literallayout>(3 rows)</entry> ...@@ -12818,6 +12826,7 @@ NULL baz</literallayout>(3 rows)</entry>
</entry> </entry>
<entry></entry> <entry></entry>
<entry><type>bigint</type></entry> <entry><type>bigint</type></entry>
<entry>Yes</entry>
<entry>number of input rows</entry> <entry>number of input rows</entry>
</row> </row>
...@@ -12825,6 +12834,7 @@ NULL baz</literallayout>(3 rows)</entry> ...@@ -12825,6 +12834,7 @@ NULL baz</literallayout>(3 rows)</entry>
<entry><function>count(<replaceable class="parameter">expression</replaceable>)</function></entry> <entry><function>count(<replaceable class="parameter">expression</replaceable>)</function></entry>
<entry>any</entry> <entry>any</entry>
<entry><type>bigint</type></entry> <entry><type>bigint</type></entry>
<entry>Yes</entry>
<entry> <entry>
number of input rows for which the value of <replaceable number of input rows for which the value of <replaceable
class="parameter">expression</replaceable> is not null class="parameter">expression</replaceable> is not null
...@@ -12844,6 +12854,7 @@ NULL baz</literallayout>(3 rows)</entry> ...@@ -12844,6 +12854,7 @@ NULL baz</literallayout>(3 rows)</entry>
<entry> <entry>
<type>bool</type> <type>bool</type>
</entry> </entry>
<entry>Yes</entry>
<entry>equivalent to <function>bool_and</function></entry> <entry>equivalent to <function>bool_and</function></entry>
</row> </row>
...@@ -12860,6 +12871,7 @@ NULL baz</literallayout>(3 rows)</entry> ...@@ -12860,6 +12871,7 @@ NULL baz</literallayout>(3 rows)</entry>
<entry> <entry>
<type>json</type> <type>json</type>
</entry> </entry>
<entry>No</entry>
<entry>aggregates values as a JSON array</entry> <entry>aggregates values as a JSON array</entry>
</row> </row>
...@@ -12876,6 +12888,7 @@ NULL baz</literallayout>(3 rows)</entry> ...@@ -12876,6 +12888,7 @@ NULL baz</literallayout>(3 rows)</entry>
<entry> <entry>
<type>jsonb</type> <type>jsonb</type>
</entry> </entry>
<entry>No</entry>
<entry>aggregates values as a JSON array</entry> <entry>aggregates values as a JSON array</entry>
</row> </row>
...@@ -12892,6 +12905,7 @@ NULL baz</literallayout>(3 rows)</entry> ...@@ -12892,6 +12905,7 @@ NULL baz</literallayout>(3 rows)</entry>
<entry> <entry>
<type>json</type> <type>json</type>
</entry> </entry>
<entry>No</entry>
<entry>aggregates name/value pairs as a JSON object</entry> <entry>aggregates name/value pairs as a JSON object</entry>
</row> </row>
...@@ -12908,6 +12922,7 @@ NULL baz</literallayout>(3 rows)</entry> ...@@ -12908,6 +12922,7 @@ NULL baz</literallayout>(3 rows)</entry>
<entry> <entry>
<type>jsonb</type> <type>jsonb</type>
</entry> </entry>
<entry>No</entry>
<entry>aggregates name/value pairs as a JSON object</entry> <entry>aggregates name/value pairs as a JSON object</entry>
</row> </row>
...@@ -12921,6 +12936,7 @@ NULL baz</literallayout>(3 rows)</entry> ...@@ -12921,6 +12936,7 @@ NULL baz</literallayout>(3 rows)</entry>
<entry>any numeric, string, date/time, network, or enum type, <entry>any numeric, string, date/time, network, or enum type,
or arrays of these types</entry> or arrays of these types</entry>
<entry>same as argument type</entry> <entry>same as argument type</entry>
<entry>Yes</entry>
<entry> <entry>
maximum value of <replaceable maximum value of <replaceable
class="parameter">expression</replaceable> across all input class="parameter">expression</replaceable> across all input
...@@ -12938,6 +12954,7 @@ NULL baz</literallayout>(3 rows)</entry> ...@@ -12938,6 +12954,7 @@ NULL baz</literallayout>(3 rows)</entry>
<entry>any numeric, string, date/time, network, or enum type, <entry>any numeric, string, date/time, network, or enum type,
or arrays of these types</entry> or arrays of these types</entry>
<entry>same as argument type</entry> <entry>same as argument type</entry>
<entry>Yes</entry>
<entry> <entry>
minimum value of <replaceable minimum value of <replaceable
class="parameter">expression</replaceable> across all input class="parameter">expression</replaceable> across all input
...@@ -12961,6 +12978,7 @@ NULL baz</literallayout>(3 rows)</entry> ...@@ -12961,6 +12978,7 @@ NULL baz</literallayout>(3 rows)</entry>
<entry> <entry>
same as argument types same as argument types
</entry> </entry>
<entry>No</entry>
<entry>input values concatenated into a string, separated by delimiter</entry> <entry>input values concatenated into a string, separated by delimiter</entry>
</row> </row>
...@@ -12983,6 +13001,7 @@ NULL baz</literallayout>(3 rows)</entry> ...@@ -12983,6 +13001,7 @@ NULL baz</literallayout>(3 rows)</entry>
<type>bigint</type> arguments, otherwise the same as the <type>bigint</type> arguments, otherwise the same as the
argument data type argument data type
</entry> </entry>
<entry>All types apart from floating-point types</entry>
<entry>sum of <replaceable class="parameter">expression</replaceable> across all input values</entry> <entry>sum of <replaceable class="parameter">expression</replaceable> across all input values</entry>
</row> </row>
...@@ -12999,6 +13018,7 @@ NULL baz</literallayout>(3 rows)</entry> ...@@ -12999,6 +13018,7 @@ NULL baz</literallayout>(3 rows)</entry>
<entry> <entry>
<type>xml</type> <type>xml</type>
</entry> </entry>
<entry>No</entry>
<entry>concatenation of XML values (see also <xref linkend="functions-xml-xmlagg">)</entry> <entry>concatenation of XML values (see also <xref linkend="functions-xml-xmlagg">)</entry>
</row> </row>
</tbody> </tbody>
...@@ -13015,6 +13035,12 @@ NULL baz</literallayout>(3 rows)</entry> ...@@ -13015,6 +13035,12 @@ NULL baz</literallayout>(3 rows)</entry>
substitute zero or an empty array for null when necessary. substitute zero or an empty array for null when necessary.
</para> </para>
<para>
Aggregate functions which support <firstterm>Partial Mode</firstterm>
are eligible to participate in various optimizations, such as parallel
aggregation.
</para>
<note> <note>
<indexterm> <indexterm>
<primary>ANY</primary> <primary>ANY</primary>
...@@ -13098,12 +13124,13 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13098,12 +13124,13 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<table id="functions-aggregate-statistics-table"> <table id="functions-aggregate-statistics-table">
<title>Aggregate Functions for Statistics</title> <title>Aggregate Functions for Statistics</title>
<tgroup cols="4"> <tgroup cols="5">
<thead> <thead>
<row> <row>
<entry>Function</entry> <entry>Function</entry>
<entry>Argument Type</entry> <entry>Argument Type</entry>
<entry>Return Type</entry> <entry>Return Type</entry>
<entry>Partial Mode</entry>
<entry>Description</entry> <entry>Description</entry>
</row> </row>
</thead> </thead>
...@@ -13126,6 +13153,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13126,6 +13153,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<entry> <entry>
<type>double precision</type> <type>double precision</type>
</entry> </entry>
<entry>No</entry>
<entry>correlation coefficient</entry> <entry>correlation coefficient</entry>
</row> </row>
...@@ -13146,6 +13174,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13146,6 +13174,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<entry> <entry>
<type>double precision</type> <type>double precision</type>
</entry> </entry>
<entry>No</entry>
<entry>population covariance</entry> <entry>population covariance</entry>
</row> </row>
...@@ -13166,6 +13195,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13166,6 +13195,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<entry> <entry>
<type>double precision</type> <type>double precision</type>
</entry> </entry>
<entry>No</entry>
<entry>sample covariance</entry> <entry>sample covariance</entry>
</row> </row>
...@@ -13182,6 +13212,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13182,6 +13212,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<entry> <entry>
<type>double precision</type> <type>double precision</type>
</entry> </entry>
<entry>No</entry>
<entry>average of the independent variable <entry>average of the independent variable
(<literal>sum(<replaceable class="parameter">X</replaceable>)/<replaceable class="parameter">N</replaceable></literal>)</entry> (<literal>sum(<replaceable class="parameter">X</replaceable>)/<replaceable class="parameter">N</replaceable></literal>)</entry>
</row> </row>
...@@ -13199,6 +13230,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13199,6 +13230,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<entry> <entry>
<type>double precision</type> <type>double precision</type>
</entry> </entry>
<entry>No</entry>
<entry>average of the dependent variable <entry>average of the dependent variable
(<literal>sum(<replaceable class="parameter">Y</replaceable>)/<replaceable class="parameter">N</replaceable></literal>)</entry> (<literal>sum(<replaceable class="parameter">Y</replaceable>)/<replaceable class="parameter">N</replaceable></literal>)</entry>
</row> </row>
...@@ -13216,6 +13248,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13216,6 +13248,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<entry> <entry>
<type>bigint</type> <type>bigint</type>
</entry> </entry>
<entry>No</entry>
<entry>number of input rows in which both expressions are nonnull</entry> <entry>number of input rows in which both expressions are nonnull</entry>
</row> </row>
...@@ -13235,6 +13268,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13235,6 +13268,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<entry> <entry>
<type>double precision</type> <type>double precision</type>
</entry> </entry>
<entry>No</entry>
<entry>y-intercept of the least-squares-fit linear equation <entry>y-intercept of the least-squares-fit linear equation
determined by the (<replaceable determined by the (<replaceable
class="parameter">X</replaceable>, <replaceable class="parameter">X</replaceable>, <replaceable
...@@ -13254,6 +13288,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13254,6 +13288,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<entry> <entry>
<type>double precision</type> <type>double precision</type>
</entry> </entry>
<entry>No</entry>
<entry>square of the correlation coefficient</entry> <entry>square of the correlation coefficient</entry>
</row> </row>
...@@ -13273,6 +13308,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13273,6 +13308,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<entry> <entry>
<type>double precision</type> <type>double precision</type>
</entry> </entry>
<entry>No</entry>
<entry>slope of the least-squares-fit linear equation determined <entry>slope of the least-squares-fit linear equation determined
by the (<replaceable class="parameter">X</replaceable>, by the (<replaceable class="parameter">X</replaceable>,
<replaceable class="parameter">Y</replaceable>) pairs</entry> <replaceable class="parameter">Y</replaceable>) pairs</entry>
...@@ -13291,6 +13327,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13291,6 +13327,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<entry> <entry>
<type>double precision</type> <type>double precision</type>
</entry> </entry>
<entry>No</entry>
<entry><literal>sum(<replaceable <entry><literal>sum(<replaceable
class="parameter">X</replaceable>^2) - sum(<replaceable class="parameter">X</replaceable>^2) - sum(<replaceable
class="parameter">X</replaceable>)^2/<replaceable class="parameter">X</replaceable>)^2/<replaceable
...@@ -13311,6 +13348,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13311,6 +13348,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<entry> <entry>
<type>double precision</type> <type>double precision</type>
</entry> </entry>
<entry>No</entry>
<entry><literal>sum(<replaceable <entry><literal>sum(<replaceable
class="parameter">X</replaceable>*<replaceable class="parameter">X</replaceable>*<replaceable
class="parameter">Y</replaceable>) - sum(<replaceable class="parameter">Y</replaceable>) - sum(<replaceable
...@@ -13334,6 +13372,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13334,6 +13372,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<entry> <entry>
<type>double precision</type> <type>double precision</type>
</entry> </entry>
<entry>No</entry>
<entry><literal>sum(<replaceable <entry><literal>sum(<replaceable
class="parameter">Y</replaceable>^2) - sum(<replaceable class="parameter">Y</replaceable>^2) - sum(<replaceable
class="parameter">Y</replaceable>)^2/<replaceable class="parameter">Y</replaceable>)^2/<replaceable
...@@ -13360,6 +13399,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13360,6 +13399,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<type>double precision</type> for floating-point arguments, <type>double precision</type> for floating-point arguments,
otherwise <type>numeric</type> otherwise <type>numeric</type>
</entry> </entry>
<entry>All types apart from floating-point types</entry>
<entry>historical alias for <function>stddev_samp</function></entry> <entry>historical alias for <function>stddev_samp</function></entry>
</row> </row>
...@@ -13383,6 +13423,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13383,6 +13423,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<type>double precision</type> for floating-point arguments, <type>double precision</type> for floating-point arguments,
otherwise <type>numeric</type> otherwise <type>numeric</type>
</entry> </entry>
<entry>All types apart from floating-point types</entry>
<entry>population standard deviation of the input values</entry> <entry>population standard deviation of the input values</entry>
</row> </row>
...@@ -13406,6 +13447,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13406,6 +13447,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<type>double precision</type> for floating-point arguments, <type>double precision</type> for floating-point arguments,
otherwise <type>numeric</type> otherwise <type>numeric</type>
</entry> </entry>
<entry>All types apart from floating-point types</entry>
<entry>sample standard deviation of the input values</entry> <entry>sample standard deviation of the input values</entry>
</row> </row>
...@@ -13425,6 +13467,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13425,6 +13467,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<type>double precision</type> for floating-point arguments, <type>double precision</type> for floating-point arguments,
otherwise <type>numeric</type> otherwise <type>numeric</type>
</entry> </entry>
<entry>All types apart from floating-point types</entry>
<entry>historical alias for <function>var_samp</function></entry> <entry>historical alias for <function>var_samp</function></entry>
</row> </row>
...@@ -13448,6 +13491,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13448,6 +13491,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<type>double precision</type> for floating-point arguments, <type>double precision</type> for floating-point arguments,
otherwise <type>numeric</type> otherwise <type>numeric</type>
</entry> </entry>
<entry>All types apart from floating-point types</entry>
<entry>population variance of the input values (square of the population standard deviation)</entry> <entry>population variance of the input values (square of the population standard deviation)</entry>
</row> </row>
...@@ -13471,6 +13515,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13471,6 +13515,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<type>double precision</type> for floating-point arguments, <type>double precision</type> for floating-point arguments,
otherwise <type>numeric</type> otherwise <type>numeric</type>
</entry> </entry>
<entry>All types apart from floating-point types</entry>
<entry>sample variance of the input values (square of the sample standard deviation)</entry> <entry>sample variance of the input values (square of the sample standard deviation)</entry>
</row> </row>
</tbody> </tbody>
...@@ -13495,13 +13540,14 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13495,13 +13540,14 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<table id="functions-orderedset-table"> <table id="functions-orderedset-table">
<title>Ordered-Set Aggregate Functions</title> <title>Ordered-Set Aggregate Functions</title>
<tgroup cols="5"> <tgroup cols="6">
<thead> <thead>
<row> <row>
<entry>Function</entry> <entry>Function</entry>
<entry>Direct Argument Type(s)</entry> <entry>Direct Argument Type(s)</entry>
<entry>Aggregated Argument Type(s)</entry> <entry>Aggregated Argument Type(s)</entry>
<entry>Return Type</entry> <entry>Return Type</entry>
<entry>Partial Mode</entry>
<entry>Description</entry> <entry>Description</entry>
</row> </row>
</thead> </thead>
...@@ -13524,6 +13570,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13524,6 +13570,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<entry> <entry>
same as sort expression same as sort expression
</entry> </entry>
<entry>No</entry>
<entry> <entry>
returns the most frequent input value (arbitrarily choosing the first returns the most frequent input value (arbitrarily choosing the first
one if there are multiple equally-frequent results) one if there are multiple equally-frequent results)
...@@ -13550,6 +13597,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13550,6 +13597,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<entry> <entry>
same as sort expression same as sort expression
</entry> </entry>
<entry>No</entry>
<entry> <entry>
continuous percentile: returns a value corresponding to the specified continuous percentile: returns a value corresponding to the specified
fraction in the ordering, interpolating between adjacent input items if fraction in the ordering, interpolating between adjacent input items if
...@@ -13570,6 +13618,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13570,6 +13618,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<entry> <entry>
array of sort expression's type array of sort expression's type
</entry> </entry>
<entry>No</entry>
<entry> <entry>
multiple continuous percentile: returns an array of results matching multiple continuous percentile: returns an array of results matching
the shape of the <literal>fractions</literal> parameter, with each the shape of the <literal>fractions</literal> parameter, with each
...@@ -13594,6 +13643,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13594,6 +13643,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<entry> <entry>
same as sort expression same as sort expression
</entry> </entry>
<entry>No</entry>
<entry> <entry>
discrete percentile: returns the first input value whose position in discrete percentile: returns the first input value whose position in
the ordering equals or exceeds the specified fraction the ordering equals or exceeds the specified fraction
...@@ -13613,6 +13663,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13613,6 +13663,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<entry> <entry>
array of sort expression's type array of sort expression's type
</entry> </entry>
<entry>No</entry>
<entry> <entry>
multiple discrete percentile: returns an array of results matching the multiple discrete percentile: returns an array of results matching the
shape of the <literal>fractions</literal> parameter, with each non-null shape of the <literal>fractions</literal> parameter, with each non-null
...@@ -13651,13 +13702,14 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13651,13 +13702,14 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<table id="functions-hypothetical-table"> <table id="functions-hypothetical-table">
<title>Hypothetical-Set Aggregate Functions</title> <title>Hypothetical-Set Aggregate Functions</title>
<tgroup cols="5"> <tgroup cols="6">
<thead> <thead>
<row> <row>
<entry>Function</entry> <entry>Function</entry>
<entry>Direct Argument Type(s)</entry> <entry>Direct Argument Type(s)</entry>
<entry>Aggregated Argument Type(s)</entry> <entry>Aggregated Argument Type(s)</entry>
<entry>Return Type</entry> <entry>Return Type</entry>
<entry>Partial Mode</entry>
<entry>Description</entry> <entry>Description</entry>
</row> </row>
</thead> </thead>
...@@ -13681,6 +13733,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13681,6 +13733,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<entry> <entry>
<type>bigint</type> <type>bigint</type>
</entry> </entry>
<entry>No</entry>
<entry> <entry>
rank of the hypothetical row, with gaps for duplicate rows rank of the hypothetical row, with gaps for duplicate rows
</entry> </entry>
...@@ -13703,6 +13756,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13703,6 +13756,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<entry> <entry>
<type>bigint</type> <type>bigint</type>
</entry> </entry>
<entry>No</entry>
<entry> <entry>
rank of the hypothetical row, without gaps rank of the hypothetical row, without gaps
</entry> </entry>
...@@ -13725,6 +13779,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13725,6 +13779,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<entry> <entry>
<type>double precision</type> <type>double precision</type>
</entry> </entry>
<entry>No</entry>
<entry> <entry>
relative rank of the hypothetical row, ranging from 0 to 1 relative rank of the hypothetical row, ranging from 0 to 1
</entry> </entry>
...@@ -13747,6 +13802,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab; ...@@ -13747,6 +13802,7 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<entry> <entry>
<type>double precision</type> <type>double precision</type>
</entry> </entry>
<entry>No</entry>
<entry> <entry>
relative rank of the hypothetical row, ranging from relative rank of the hypothetical row, ranging from
1/<replaceable>N</> to 1 1/<replaceable>N</> to 1
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment