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

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.
主站蜘蛛池模板: 临城县| 怀宁县| 盐池县| 峡江县| 广昌县| 安泽县| 遵义市| 长兴县| 麻栗坡县| 西充县| 商水县| 容城县| 喜德县| 康平县| 咸丰县| 本溪| 赤壁市| 鄂托克前旗| 威海市| 江孜县| 巴彦淖尔市| 日照市| 镇远县| 义乌市| 沂南县| 尼玛县| 霸州市| 荣成市| 福海县| 长治市| 梅河口市| 定南县| 辽宁省| 卢龙县| 始兴县| 汕尾市| 蕲春县| 德清县| 准格尔旗| 伊金霍洛旗| 潞城市|