官术网_书友最值得收藏!

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.
主站蜘蛛池模板: 东海县| 九江县| 新余市| 定西市| 九台市| 南京市| 高陵县| 迭部县| 西贡区| 景东| 长春市| 焦作市| 清远市| 阳山县| 镇江市| 灵宝市| 香格里拉县| 睢宁县| 略阳县| 景谷| 汝州市| 清丰县| 德化县| 凉城县| 许昌市| 三门县| 兴化市| 林周县| 安义县| 芮城县| 文成县| 绥江县| 洪湖市| 来凤县| 南溪县| 涞水县| 吐鲁番市| 曲阜市| 灵山县| 舞阳县| 永登县|