- Mastering PostgreSQL 9.6
- Hans Jurgen Schonig
- 164字
- 2021-07-09 19:57:25
Understanding hypothetical aggregates
Hypothetical aggregates are pretty similar to standard ordered sets. However, they help to answer a different kind of question: what would be the result if a value was there? As you can see, this is not about values inside the database but about the result, if a certain value was actually there.
The only hypothetical function provided by PostgreSQL is rank. It tells us:
test=# SELECT region,
rank(9000) WITHIN GROUP
(ORDER BY production DESC NULLS LAST)
FROM t_oil
GROUP BY ROLLUP (1);
region | rank
---------------+------
Middle East | 21
North America | 27
| 47
(3 rows)
If somebody produced 9000 barrels per day, it would be the 27 best year in North America and 21 in the Middle East.
Note that in my example, I used NULLS LAST. When data is sorted, nulls are usually at the end. However, if sort order is reversed, nulls should still be at the end of the list. NULLS LAST ensures exactly that.
推薦閱讀
- 繪制進程圖:可視化D++語言(第1冊)
- Introduction to DevOps with Kubernetes
- Google Cloud Platform Cookbook
- Design for the Future
- Zabbix Network Monitoring(Second Edition)
- JBoss ESB Beginner’s Guide
- Photoshop CS3圖層、通道、蒙版深度剖析寶典
- 大數據驅動的設備健康預測及維護決策優化
- Implementing AWS:Design,Build,and Manage your Infrastructure
- 面向對象程序設計綜合實踐
- 智能鼠原理與制作(進階篇)
- 工業機器人實操進階手冊
- Mastering Ansible(Second Edition)
- 貫通Java Web輕量級應用開發
- 單片機硬件接口電路及實例解析