oracle统计sql

本文介绍了一个复杂的SQL查询案例,该查询使用多个子查询和连接来汇总特定条件下的统计数据,包括不同状态的数量和特殊标记的分类计数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

select a.*,b.dwmc from ( select bsc, count(*) cou, sum(decode(zt, '1', 1, 0)) zx, sum(decode(zt, '0', 1, 0)) zc, sum(decode(bj, '2', 1, 0)) rd, sum(decode(bj, '1', 1, 0)) ms,sum(decode(bj, '3', 1, 0)) sxbj, sum(decode(qtbj, '1', 1, 0)) bdq, sum(decode(qtbj, '2', 1, 0)) fc, sum(decode(qtbj, '3', 1, 0)) dy, sum(decode(qtbj, '4', 1, 0)) sgty, sum(decode(qtbj, '5', 1, 0)) sxtq  from hbc_veh where  zt != '2' group by bsc)a,pl_company b where a.bsc=b.dwbh

根据zt bj qtbj 以此统计 zt还不等于0

### Oracle 数据库中的统计 SQL 查询 在 Oracle 数据库中,编写高效的统计查询对于数据管理和分析至关重要。为了实现这一点,可以利用多种内置函数和工具来简化开发过程并提高性能。 #### 编写统计查询 构建有效的统计查询通常涉及聚合操作,如 `COUNT`、`SUM` 和 `AVG` 函数。这些函数能够帮助汇总表内的数值型字段信息: ```sql SELECT COUNT(*) AS total_records, SUM(salary) AS sum_of_salaries, AVG(commission_pct) AS average_commission_percentage FROM employees; ``` 此语句计算员工记录总数、工资总额以及佣金百分比平均值[^1]。 #### 性能优化技巧 针对大型表格执行复杂查询时可能会遇到性能瓶颈。通过索引创建可显著提升访问速度;另外采用分区技术也能有效减少扫描范围从而加快处理时间。合理设计物理存储结构同样有助于改善整体效率。 - **索引**:为经常用于过滤条件列建立 B-tree 或 bitmap 类型索引来加速检索。 - **分区**:依据业务逻辑将大表划分为更小的部分以便于管理与维护。 - **物化视图**:预先计算好某些耗时较长的结果集,在实际请求到来之前就准备好答案以供即时返回给客户端应用层使用[^2]. #### 内置统计函数的应用场景 除了上述提到的基础聚合运算符外,Oracle 还提供了更多高级别的专用功能,比如窗口函数 (Window Functions),它们允许在一个结果集中按组划分来进行更加灵活多样的数据分析工作而无需依赖子查询或者连接操作: ```sql WITH ranked_sales AS ( SELECT employee_id, department_id, salary, RANK() OVER(PARTITION BY department_id ORDER BY salary DESC) as rank_num FROM employees ) SELECT * FROM ranked_sales WHERE rank_num <= 3; -- 获取各部门薪资排名前三名的雇员列表 ``` 这段代码展示了如何运用 `RANK()` 来找出各个部门里薪水最高的三位同事[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值