当前位置: 首页 > 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.lryc.cn/news/608479.html

相关文章:

  • 适 配 器 模 式
  • 电力系统分析笔记:发电机与变压器的数学建模与运行状态详解
  • SPI通信中CS片选的两种实现方案:硬件片选与软件片选
  • Anthropic:跨越生产效能拐点的AI增长飞轮
  • Munge 安全认证和授权服务的工作原理,以及与 Slurm 的配合
  • 交互 Codeforces Round 1040 Interactive RBS
  • 深入 Go 底层原理(十一):Go 的反射(Reflection)机制
  • 基于深度学习的医学图像分析:使用GAN实现医学图像增强
  • SpringBoot 启动富文本文字更改
  • 基于 LightGBM 的二手车价格预测
  • 一种基于入侵杂草优化算法(IWO)的聚类算法,并与K-Means、高斯混合模型(GMM)进行对比,Matlab
  • 用键盘快速移动Word和WPS文字中的选中段落
  • 【笔试真题】2024秋招京东后端开发岗位-第一批笔试
  • 数据链路层、NAT、代理服务、内网穿透
  • 使用 MySQL Shell 进行 MySQL 单机到 InnoDB Cluster 的数据迁移实践
  • 数字化生产管理系统设计
  • 从零开始构建AI Agent评估体系:12种LangSmith评估方法详解
  • cuda编程笔记(12)--学习cuFFT的简单使用
  • Java单元测试和设计模式
  • 【LeetCode 热题 100】739. 每日温度——(解法一)单调栈+从右到左
  • 【语音技术】什么是动态实体
  • 【Django】-6- 登录用户身份鉴权
  • Mybatis学习之获取参数值(四)
  • 第14届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2023年1月15日真题
  • STM32学习记录--Day6
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘seaborn’问题
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现道路车辆事故的检测识别(C#代码UI界面版)
  • SpringBoot 服务器配置
  • 面经——电子电路技术知识详解
  • 【Python3教程】Python3高级篇之网络编程