doc: use FILTER in aggregate example
Reported-by: michal.palenik@freemap.sk Discussion: https://postgr.es/m/163499710897.684.7420075366995883688@wrigleys.postgresql.org Backpatch-through: 10
This commit is contained in:
parent
c2db84fc59
commit
994667f899
|
@ -728,19 +728,20 @@ SELECT city, max(temp_lo)
|
|||
which gives us one output row per city. Each aggregate result is
|
||||
computed over the table rows matching that city.
|
||||
We can filter these grouped
|
||||
rows using <literal>HAVING</literal>:
|
||||
rows using <literal>HAVING</literal> and the output count using
|
||||
<literal>FILTER</literal>:
|
||||
|
||||
<programlisting>
|
||||
SELECT city, max(temp_lo)
|
||||
SELECT city, max(temp_lo), count(*) FILTER (WHERE temp_lo < 30)
|
||||
FROM weather
|
||||
GROUP BY city
|
||||
HAVING max(temp_lo) < 40;
|
||||
</programlisting>
|
||||
|
||||
<screen>
|
||||
city | max
|
||||
---------+-----
|
||||
Hayward | 37
|
||||
city | max | count
|
||||
---------+-----+-------
|
||||
Hayward | 37 | 5
|
||||
(1 row)
|
||||
</screen>
|
||||
|
||||
|
@ -750,7 +751,7 @@ SELECT city, max(temp_lo)
|
|||
names begin with <quote><literal>S</literal></quote>, we might do:
|
||||
|
||||
<programlisting>
|
||||
SELECT city, max(temp_lo)
|
||||
SELECT city, max(temp_lo), count(*) FILTER (WHERE temp_lo < 30)
|
||||
FROM weather
|
||||
WHERE city LIKE 'S%' -- <co id="co.tutorial-agg-like"/>
|
||||
GROUP BY city
|
||||
|
|
Loading…
Reference in New Issue