当前位置: 首页 > news >正文

GaussDB having 的用法

1 having 的作用

      having 子句使你能够指定过滤条件,从而控制查询结果中哪些组可以出现在最终结果里面。where 子句对被选择的列施加条件,而 having 子句则对 group by 子句所产生的组施加条件。

2 having 语法

下面可以看到 having 子句在 select 查询中的位置:
select
from
where
group by
having
order by
在 select 查询中,having 子句必须紧随 group by 子句,并出现在 order by 子句(如果有的话)之前。带有 having 子句的 select 语句的语法如下所示:
select column1,column2
from table1,table2
where [conditions]
group by column1,column2
having [conditions]
order by column1,column2;

3 having 实例

考虑 customers 表,表中的记录如下所示:
csdn=> select * from customers;id | name |     addr     | city |  zip   | province | age
----+------+--------------+------+--------+----------+-----1 | 张三 | 北京路27号   | 上海 | 200000 | 上海市   |2 | 李四 | 南京路12号   | 杭州 | 310000 | 浙江市   |3 | 王五 | 花城大道17号 | 广州 | 510000 | 广州省   |4 | 马六 | 江夏路19号   | 武汉 | 430000 | 湖北省   |5 | 赵七 | 西二旗12号   | 北京 | 100000 | 北京市   |7 | 老六 | 西二旗12号   | 北京 | 100000 | 北京市   |
(6 rows)csdn=>
csdn=>
csdn=>
下面是一个有关 having 子句使用的实例,该实例将会筛选出"城市"列的内容出
现次数大于或等于 2 的所有记录。

示代:
select * from customers
where city in (
select city from customers
group by city
having count(1)>1
)

结果:

注:

上面的代码用了一个子查询,主要是因为在 GaussDB中group by 分组后,在select 后面显示的列里面只能显示分组的列,比如我们这里对城市分组了,那么子查询里面就只能显示城市列,如果要显示其他列,比如要还要显示"省份"

select city,province from customers
group by city
having count(1)>1;

结果:

ERROR:  Column "customers.province" must appear in the GROUP BY clause or be used in an aggregate function.
LINE 1: select city,province from customers
^

所以我们将筛选出来符合条件的内容,通过子查询再传递给外面的主查询。主查询就可以不受 group by 的约束显示你想显示的内容了。

http://www.xdnf.cn/news/1231363.html

相关文章:

  • 图像加密学习日志————论文学习DAY4
  • 分布式事务----spring操作多个数据库,事务以及事务回滚还有用吗
  • 机械臂的轨迹生成的多种方案
  • Jupyter notebook如何显示行号?
  • MFC 实现托盘图标菜单图标功能
  • NCV8402ASTT1G自保护N沟道功率MOSFET安森美/ONSEMI 过流过温保护汽车级驱动NCV8402ASTT1
  • 从基础功能到自主决策, Agent 开发进阶路怎么走?
  • 【计算机网络】Socket网络编程
  • Android 15 限制APK包手动安装但不限制自升级的实现方案
  • 断路器瞬时跳闸曲线数据获取方式
  • Javaweb————Apache Tomcat服务器介绍及Windows,Linux,MAC三种系统搭建Apache Tomcat
  • 嵌入式第十八课!!数据结构篇入门及单向链表
  • Oracle 11gR2 Clusterware应知应会
  • IDM下载失败排查
  • 704. 二分查找
  • 市政污水厂变频器联网改造方案-profibus转ethernet ip网关(通俗版)
  • CommonJS和ES6 Modules区别
  • python:以支持向量机(SVM)为例,通过调整正则化参数C和核函数类型来控制欠拟合和过拟合
  • Autosar Nm-网管报文PNC停发后无法休眠问题排查
  • 区分「尊重」和「顺从」
  • 简化理解I2C总线
  • Android13文件管理USB音乐无专辑图片显示的是同目录其他图片
  • 【Django】-6- 登录用户身份鉴权
  • Piriority_queue
  • Java多线程入门-基础概念与线程操作
  • JVM中年轻代、老年代、永久代(或元空间)、Eden区和Survivor区概念介绍
  • ART数据库索引结构--ART,The adaptive radix tree论文细读
  • 技巧|SwanLab记录ROC曲线攻略
  • 如果esp_radar_train_stop()调用失败(比如训练未正常启动、持续时间不足、或其他配置未完成),那么:
  • 【相机】曝光时间长-->拖影