当前位置:早雪网网络学院编程文档数据库技术Postgresql → PostgreSQL7.0手册-教程 -72. 查询语言

PostgreSQL7.0手册-教程 -72. 查询语言

减小字体 增大字体 作者:不详  来源:supcode.com收集整理  发布时间:2005-7-23 12:22:38
的目标;下面是通过运用子查询实现的方式: 
SELECT city FROM weather
    WHERE temp_lo = (SELECT max(temp_lo) FROM weather);
这样做是可以的,因为子查询是一个独立的计算,它计算出与外层 select 无关的自身的聚集。 
聚集在和 group by 子句联合使用时也是非常有用的。例如,我们可以用下面语句获取在每个城市观察到的最低温度的最高值 

SELECT city, max(temp_lo)
    FROM weather
    GROUP BY city;
这个查询为每个城市输出一行。我们可以用  HAVING 过滤这些分组的行: 
SELECT city, max(temp_lo)
    FROM weather
    GROUP BY city
    HAVING min(temp_lo) < 0;
这个查询只给出那些最低温度有零下读数的城市。最后,如果我们只关心以 "P" 开头的城市,我们可以 
  
SELECT city, max(temp_lo)
    FROM weather
    WHERE city like 'P%'
    GROUP BY city
    HAVING min(temp_lo) < 0;
请注意我们可以在 WHERE 子句里面给出城市名称的约束,因为这是不需要聚集的。这样比在 HAVING 上加限制更有效,因为我们不必对未通过 WHERE 检查的行进行分组和聚集计算。

--------------------------------------------------------------------------------

上一页  [1] [2] [3] 

[数据载入中...] [返回上一页] [打 印]