热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Oraclerow_number分析函数简化了我们的很多操作

1880213009060195918830130090633337分析:这不是一个很难的问题,*********分组统计***

18802 13009060195 9 18830 13009063333 7 //分析: //这不是一个很难的问题, /*********分组统计***

Oracle row_number分析函数简化了我们的很多操作

[日期:2011-05-04] 来源:Linux社区 作者:BOBO12082119 [字体:]

//问题:
CI MSISDN CNT
18802 13009060195 9
18830 13009060195 1
18837 13009060195 2
18829 13009063333 5
18830 13009063333 7
18847 13009063333 4
//结果:
CI MSISDN CNT
18802 13009060195 9
18830 13009063333 7
//此问题是想把MSISDN相同的项的CNT查询出来
//碰到此问题,我是这么思考的:
//首先,将MSISDN相同的项的CNT查询出来,构成一个结果集:
with t as(
select '18802' ci,'13009060195' msisdn,9 cnt from dual union all
select '18830','13009060195',1 from dual union all
select '18837','13009060195',2 from dual union all
select '18829','13009063333',5 from dual union all
select '18830','13009063333',7 from dual union all
select '18847','13009063333',4 from dual)
select msisdn,max(cnt) cnt
from t
group by msisdn
--
MSISDN CNT
----------- ----------
13009060195 9
13009063333 7
//其次,将原表与此结构集相匹配,如果MSISDN和CNT都相同的就提出来
select t.*
from t,(
select msisdn,max(cnt) cnt
from t
group by msisdn
) b
where t.msisdn=b.msisdn and
t.cnt=b.cnt;
//这样就能得到我们想要的结果,如下:
CI MSISDN CNT
----- ----------- ----------
18802 13009060195 9
18830 13009063333 7
//分析:
//这不是一个很难的问题,,
/*********分组统计******/
//可这又是子查询,又是表连接的,怎么那么费事呢?
//肯定还有更好的解决方法:
select ci,msisdn,cnt
from (select ci,
msisdn,
cnt,
row_number()over(partition by msisdn order by cnt desc) rn from t)
where rn=1;

linux

推荐阅读
  • 通常情况下,修改my.cnf配置文件后需要重启MySQL服务才能使新参数生效。然而,通过特定命令可以在不重启服务的情况下实现配置的即时更新。本文将详细介绍如何在线调整MySQL配置,并验证其有效性。 ... [详细]
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • 本文详细介绍了Java中实现异步调用的多种方式,包括线程创建、Future接口、CompletableFuture类以及Spring框架的@Async注解。通过代码示例和深入解析,帮助读者理解并掌握这些技术。 ... [详细]
  • 本文详细介绍了如何在 Android 中使用值动画(ValueAnimator)来动态调整 ImageView 的高度,并探讨了相关的关键属性和方法,包括图片填充后的高度、原始图片高度、动画变化因子以及布局重置等。 ... [详细]
  • 本文详细介绍了如何解压并安装MySQL集群压缩包,创建用户和组,初始化数据库,配置环境变量,并启动相关服务。此外,还提供了详细的命令行操作步骤和常见问题的解决方案。 ... [详细]
  • CentOS 6.8 上安装 Oracle 10.2.0.1 的常见问题及解决方案
    本文记录了在 CentOS 6.8 系统上安装 Oracle 10.2.0.1 数据库时遇到的问题及解决方法,包括依赖库缺失、操作系统版本不兼容、用户权限不足等问题。 ... [详细]
  • 本文详细介绍了如何在Ubuntu的Enlightenment (E17) 桌面环境中管理和优化桌面图标及根菜单。通过本文,您将了解这些功能的作用及其配置方法。 ... [详细]
  • 本文详细介绍了Linux系统中的进程管理函数,涵盖了获取进程ID、用户ID、创建子进程、信号处理等关键操作。通过这些函数,开发者可以更好地控制和管理进程行为。 ... [详细]
  • 本文详细介绍了如何在Linux系统中创建和管理DB2数据库,包括用户切换、数据库创建、错误处理、连接与断开、表空间和缓冲池的创建,以及用户权限管理和数据导入导出等操作。 ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 本文详细介绍了 Linux 系统中用户、组和文件权限的设置方法,包括基本权限(读、写、执行)、特殊权限(SUID、SGID、Sticky Bit)以及相关配置文件的使用。 ... [详细]
  • Shell脚本中变量操作详解
    本文基于《鸟哥的Linux私房菜》一书,详细介绍了Shell脚本中变量的使用方法,包括变量的赋值规则、字符串处理技巧以及环境变量的管理等,旨在帮助读者更好地理解和使用Shell中的变量。 ... [详细]
  • Linux系统中光驱与硬盘的设备文件映射
    在Linux操作系统中,所有硬件设备都通过特定的设备文件进行访问。本文详细介绍了磁盘和光驱等存储设备在Linux中的设备文件命名规则及其分区表示方法。 ... [详细]
  • 本文深入探讨了 PHP 实现计划任务的方法,包括其原理、具体实现方式以及在不同操作系统中的应用。通过详细示例和代码片段,帮助开发者理解和掌握如何高效地设置和管理定时任务。 ... [详细]
author-avatar
潘PanPanPq
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有