欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python实现Oracle查询分组的方法示例

程序员文章站 2022-07-01 12:51:20
本文实例讲述了python实现oracle查询分组的方法。分享给大家供大家参考,具体如下:1.分组的概念:关键字:group by子句结论:在select列表中如果出现了聚合函数,不是聚合函数的列,必...

本文实例讲述了python实现oracle查询分组的方法。分享给大家供大家参考,具体如下:

1.分组的概念:

关键字:group by子句

结论:在select列表中如果出现了聚合函数,不是聚合函数的列,必须都要定义到group by子句的后面

需求:

查询公司各个部门的平均工资?

select department_id,avg(salary)

from employees

group by department_id;

需求提升:

查询公司各个部门不同工种的平均工资?

select department_id,job_id,avg(salary)

from employees

group by department_id,job_id;

2.having子句:

作用:用来过滤包含聚合函数的相关信息(数据)

位置:

可以再group by前也可以再 group by后面(比较随意)

需求:

查询40、60、80号部门中平均工资大于6000的部门信息?

以下代码实现有问题的:报错了!!

报错原因:如果需要对于聚合函数进行过滤不能使用where子句,

需要使用having子句来实现...

select department_id,avg(salary)

from employees

where avg(salary) > 6000 and department_id in(40,60,80)

group by department_id;

代码修改如下:

select department_id,avg(salary)

from employees

where department_id in(40,60,80)

having avg(salary) > 6000

group by department_id

order by department_id desc;

附:python连接与查询oracle数据库示例:

import cx_oracle
conn = cx_oracle.connect('scott/tiger@localhost:1521/orcl')
cursor = conn.cursor()
cursor.execute("select ename from emp")
row = cursor.fetchone()
print row[0],

cursor.close()
conn.close()