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

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:

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)

It tells us: If somebody produced, 9000 barrels per day, it would be ranked the 27th best year in North America and 21st in the Middle East.

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.
主站蜘蛛池模板: 上杭县| 枝江市| 延安市| 万源市| 农安县| 盐亭县| 滦南县| 通辽市| 庆云县| 唐河县| 浪卡子县| 永吉县| 永康市| 锡林浩特市| 措勤县| 交城县| 卢湾区| 汶川县| 于田县| 肃北| 高阳县| 江源县| 扎赉特旗| 绍兴市| 垣曲县| 湟中县| 石柱| 吉木乃县| 股票| 兴文县| 徐汇区| 甘德县| 松溪县| 五家渠市| 都匀市| 巴东县| 洱源县| 凤城市| 安龙县| 尚志市| 江油市|