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

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.
主站蜘蛛池模板: 厦门市| 晋州市| 大关县| 义乌市| 玛沁县| 卢氏县| 太仓市| 中宁县| 牙克石市| 合江县| 蛟河市| 玉溪市| 汾阳市| 宿州市| 莱州市| 渝北区| 南京市| 张家口市| 浦县| 筠连县| 巴林右旗| 呼和浩特市| 财经| 大余县| 景德镇市| 新津县| 遂宁市| 通江县| 平阴县| 多伦县| 通州区| 拜城县| 永清县| 无锡市| 鸡泽县| 策勒县| 湘潭市| 威海市| 苏尼特左旗| 松桃| 略阳县|