- Mastering PostgreSQL 10
- Hans Jürgen Sch?nig
- 222字
- 2021-06-30 19:04:02
Abstracting window clauses
A windowing function allows us to add columns to the result set that have been calculated on the fly. However, what happens quite frequently is that many columns are based on the same window. Putting the same clauses into your queries over and over again is definitely not a good idea, because your queries will be hard to read and therefore hard to maintain.
The WINDOW clause allows developers to predefine a window and use it at various places in the query. Here is how it works:
SELECT country, year, production,
min(production) OVER (w),
max(production) OVER (w)
FROM t_oil
WHERE country = 'Canada'
AND year BETWEEN 1980
AND 1985
WINDOW w AS (ORDER BY year);
country | year | production | min | max --------+-------+------------+------+------
Canada | 1980 | 1764 | 1764 | 1764
Canada | 1981 | 1610 | 1610 | 1764
Canada | 1982 | 1590 | 1590 | 1764
Canada | 1983 | 1661 | 1590 | 1764
Canada | 1984 | 1775 | 1590 | 1775
Canada | 1985 | 1812 | 1590 | 1812
(6 rows)
The example shows that min and max will use the same clause.
Of course, it is possible to have more than just one WINDOW clause—PostgreSQL does not impose serious restrictions on users here.
推薦閱讀
- Mastering Mesos
- 機器學習實戰:基于Sophon平臺的機器學習理論與實踐
- Splunk 7 Essentials(Third Edition)
- Hands-On Artificial Intelligence on Amazon Web Services
- Drupal 7 Multilingual Sites
- Hybrid Cloud for Architects
- 網絡安全與防護
- Hands-On Reactive Programming with Reactor
- LMMS:A Complete Guide to Dance Music Production Beginner's Guide
- AI的25種可能
- 所羅門的密碼
- 智能鼠原理與制作(進階篇)
- Linux系統下C程序開發詳解
- 一步步寫嵌入式操作系統
- 菜鳥起飛電腦組裝·維護與故障排查