postgresql之聚集函数

postgresql之聚集函数

ID:33999309

大小:44.71 KB

页数:3页

时间:2019-03-03

postgresql之聚集函数_第1页
postgresql之聚集函数_第2页
postgresql之聚集函数_第3页
资源描述:

《postgresql之聚集函数》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、聚集函数和大多数其他数据库一样,postgresql支持聚集函数,一个聚集函数从多个输入行中计算出一个结果。比如,我们有在一个行集合上计算count(数目),sum(和),avg(均值),max(最大值)和min(最小值)的函数。比如,我们可以用下面的语句找出所有记录中中低温中的最高温度:SELECTmax(temp_lo)FROMweather;max-----46(1row)如果我们想知道该读数发生在哪个城市,我们可以用SELECTcityFROMweatherWHEREtemp_lo=max(temp_lo);WRONG不过这个方法不能运转,因为聚集max不能用于where子

2、句中。(存在这个限制是因为where子句决定哪些行可以进入聚集阶段;因此它必须在聚集函数之前计算。)不过,我们通常都可以用其他方法实现我们的目的;在这里我们就可以使用子查询:SELECTcityFROMweatherWHEREtemp_lo=(SELECTmax(temp_lo)FROMweather);city---------------SanFrancisco(1row)这样做是OK的,因为子查询是一次独立的计算,它独立于外层的查询计算出自己的聚集。聚集同样也常用于groupby子句中。比如,我们可以获取每个城市低温的最高值SELECTcity,max(temp_lo)FRO

3、MweatherGROUPBYcity;city

4、max---------------+-----Hayward

5、37SanFrancisco

6、46(2rows)这样给我们每个城市一个输出。每个聚集结果都是在匹配该城市的行上面计算的。我们可以用having过滤这些分组:SELECTcity,max(temp_lo)FROMweatherGROUPBYcityHAVINGmax(temp_lo)<40;city

7、max---------+-----Hayward

8、37(1row)这些就只给出那些temp_lo数值曾经有低于40度温度的城市。最后,如果我们只关心那些名字以“S”开头的城

9、市,我们可以用:ELECTcity,max(temp_lo)FROMweatherWHEREcityLIKE'S%'(1)GROUPBYcityHAVINGmax(temp_lo)<40;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。