`

函数---keep

SQL 
阅读更多
KEEP

看到很多人对于keep不理解,这里解释一下!


Returns the row ranked first using DENSE_RANK
2种取值:
DENSE_RANK FIRST 
DENSE_RANK LAST 

在keep (DENSE_RANK first ORDER BY sl) 结果集中再取max、min的例子。


SQL> select * from test;

ID MC SL
-------------------- -------------------- -------------------
1 111 1
1 222 1
1 333 2
1 555 3
1 666 3
2 111 1
2 222 1
2 333 2
2 555 2

9 rows selected

SQL> 
SQL> select id,mc,sl,
2 min(mc) keep (DENSE_RANK first ORDER BY sl) over(partition by id),
3 max(mc) keep (DENSE_RANK last ORDER BY sl) over(partition by id)
4 from test
5 ;

ID MC SL MIN(MC)KEEP(DENSE_RANKFIRSTORD MAX(MC)KEEP(DENSE_RANKLASTORDE
-------------------- -------------------- ------------------- ------------------------------ ------------------------------
1 111 1 111 666
1 222 1 111 666
1 333 2 111 666
1 555 3 111 666
1 666 3 111 666
2 111 1 111 555
2 222 1 111 555
2 333 2 111 555
2 555 2 111 555

9 rows selected

SQL>

不要混淆keep内(first、last)外(min、max或者其他):
min是可以对应last的
max是可以对应first的

SQL> select id,mc,sl,
2 min(mc) keep (DENSE_RANK first ORDER BY sl) over(partition by id),
3 max(mc) keep (DENSE_RANK first ORDER BY sl) over(partition by id),
4 min(mc) keep (DENSE_RANK last ORDER BY sl) over(partition by id),
5 max(mc) keep (DENSE_RANK last ORDER BY sl) over(partition by id)
6 from test
7 ;

ID MC SL MIN(MC)KEEP(DENSE_RANKFIRSTORD MAX(MC)KEEP(DENSE_RANKFIRSTORD MIN(MC)KEEP(DENSE_RANKLASTORDE MAX(MC)KEEP(DENSE_RANKLASTORDE
-------------------- -------------------- ------------------- ------------------------------ ------------------------------ ------------------------------ ------------------------------
1 111 1 111 222 555 666
1 222 1 111 222 555 666
1 333 2 111 222 555 666
1 555 3 111 222 555 666
1 666 3 111 222 555 666
2 111 1 111 222 333 555
2 222 1 111 222 333 555
2 333 2 111 222 333 555
2 555 2 111 222 333 555

9 rows selected


SQL> select id,mc,sl,
2 min(mc) keep (DENSE_RANK first ORDER BY sl) over(partition by id),
3 max(mc) keep (DENSE_RANK first ORDER BY sl) over(partition by id),
4 min(mc) keep (DENSE_RANK last ORDER BY sl) over(partition by id),
5 max(mc) keep (DENSE_RANK last ORDER BY sl) over(partition by id)
6 from test
7 ;

ID MC SL MIN(MC)KEEP(DENSE_RANKFIRSTORD MAX(MC)KEEP(DENSE_RANKFIRSTORD MIN(MC)KEEP(DENSE_RANKLASTORDE MAX(MC)KEEP(DENSE_RANKLASTORDE
-------------------- -------------------- ------------------- ------------------------------ ------------------------------ ------------------------------ ------------------------------
1 111 1 111 222 555 666
1 222 1 111 222 555 666
1 333 2 111 222 555 666
1 555 3 111 222 555 666
1 666 3 111 222 555 666

2 111 1 111 222 333 555
2 222 1 111 222 333 555
2 333 2 111 222 333 555
2 555 2 111 222 333 555

min(mc) keep (DENSE_RANK first ORDER BY sl) over(partition by id):id等于1的数量最小的(DENSE_RANK first )为
1 111 1 
1 222 1 
在这个结果中取min(mc) 就是111
max(mc) keep (DENSE_RANK first ORDER BY sl) over(partition by id)
取max(mc) 就是222;
min(mc) keep (DENSE_RANK last ORDER BY sl) over(partition by id):id等于1的数量最大的(DENSE_RANK first )为
1 555 3 
1 666 3 
在这个结果中取min(mc) 就是222,取max(mc)就是666



分享到:
评论

相关推荐

    彻底揭秘keep-alive原理(小结)

    keep-alive用法:动态组件&vue-router keep-alive源码解析 keep-alive组件及其包裹组件的钩子 keep-alive组件及其包裹组件的渲染 二、keep-alive介绍与应用 2.1 keep-alive是什么 keep-alive是一个抽象组件:它...

    NX二次开发UF-ASSEM-initialize-sequencing-keep-layout 函数介绍

    NX二次开发UF_ASSEM_initialize_sequencing_keep_layout 函数介绍,Ufun提供了一系列丰富的 API 函数,可以帮助用户实现自动化、定制化和扩展 NX 软件的功能。无论您是从事机械设计、制造、模具设计、逆向工程、CAE ...

    vue keep-alive请求数据的方法示例

    Vue Keep-Alive 请求数据的方法示例 Vue Keep-Alive 是 Vue 框架中的一个...通过使用 beforeRouteEnter 钩子函数、activated 钩子函数、mounted 钩子函数和 keep-alive 属性,可以解决这些问题,提高应用程序的性能。

    vue.js内置组件之keep-alive组件使用

    `keep-alive`是Vue.js框架中的一个内置组件,用于实现组件的缓存功能,避免在切换组件时销毁和重新创建实例,从而提高性能并保持组件的状态。在使用`keep-alive`时,它会包裹动态组件,并在不活动时缓存组件实例。 ...

    loadrunnerWeb函数-4页.pdf

    11. **web_disable_keep_alive** 和 **web_enable_keep_alive**:控制HTTP连接的Keep-Alive机制,关闭或开启连接复用。 12. **web_set_connections_limit**:设置Vuser在运行脚本时可以同时打开的最大连接数,影响...

    music-keep-源码.rar

    2. CSS预处理器:源码中可能使用了Sass或Less,它们允许开发者编写更具有可维护性的CSS,并支持变量、嵌套规则和函数等高级特性。 3. 响应式设计:考虑到多平台兼容性,“Music-Keep”很可能采用了Flexbox或Grid...

    vue组件 keep-alive 和 transition 使用详解

    1.keep-alive 能在组件切换过程中将状态保留在内存中,防止重复渲染DOM。 包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。和 相似, 是一个抽象组件:它自身不会渲染一个 DOM 元素,也不会出现在父组件...

    vue中keep-alive内置组件缓存的实例代码

    将要缓存的组件使用 keep-alive 包裹住即可。 keep-alive优点的介绍: 1. 切换组件时,当前组件不会触发销毁的生命周期钩子。也就是说不会销毁了。 2. 切换回来时,也不会重新创建。(既然都没有被销毁,哪里来的...

    keep-alive不能缓存多层级路由菜单问题解决

    在Vue.js应用中,`keep-alive` 是一个特殊的组件,用于缓存组件的状态,使得在切换路由后,之前的状态能够被保留下来,提高用户体验。然而,在多层级路由菜单的场景下,`keep-alive` 可能无法正常工作,尤其是在三层...

    matlab开发-keep5

    在MATLAB开发环境中,"keep5"可能是一个自定义函数,用于实现特定的数据处理或分析任务。这个功能的目的是保留用户指定的变量,同时清除工作空间中的其他所有变量。这在进行数据分析和机器学习项目时非常有用,因为...

    Vue中keep-alive组件的深入理解

    Vue.js 是一款流行的前端框架,它的`keep-alive`组件是一个非常实用的功能,用于缓存组件实例,防止在路由切换时销毁和重新创建组件,从而保持组件的状态。本文将深入探讨`keep-alive`组件的工作原理及其在实际开发...

    asn基础知识

    contexts -fno-keep-types -fno-keep-modules -fno-keep-tags -fno-keep-values -fno-keep-extensions -fno-keep-all -fno-keep-private-members -fno-keep-public-members -fno-keep-static-members -fno-keep-...

    vue里如何主动销毁keep-alive缓存的组件

    在Vue.js框架中,`keep-alive`是用于缓存组件状态的一个功能,它可以保持组件状态,避免重新渲染,提高应用性能。然而,在某些场景下,我们需要在组件不再可见时主动销毁它,以避免内存泄漏或资源浪费。本文将详细...

    vue keep-alive 动态删除组件缓存的例子

    根据提供的文件信息,以下是关于Vue中keep-alive组件缓存动态删除的知识点详细说明: 首先,什么是Vue中的keep-alive组件呢?keep-alive是Vue提供的一个抽象组件,它主要用于缓存动态组件,避免组件切换过程中导致...

    vue 使某个组件不被 keep-alive 缓存的方法

    在Vue.js中,`keep-alive`组件是一个特殊类型的组件,用于缓存其内部的组件实例,以便在导航之间保持组件的状态。这在构建复杂的单页应用时非常有用,可以提高用户体验,因为当用户返回到先前访问的路由时,之前的...

    matlab开发-Keep4

    假设`keep.m`是一个实现该功能的MATLAB脚本或函数,它很可能接受一个字符串数组作为输入参数,这个数组包含了用户希望保留的变量名。函数内部可能通过调用`clear`命令,并利用MATLAB的字符串处理功能或逻辑索引来...

    vue的keep-alive用法技巧

    在使用Keep-alive时,需要注意组件的生命周期钩子函数的执行情况。缓存的组件在创建时,其created生命周期钩子只会执行一次,而activated生命周期钩子则会在每次组件被激活时执行。利用这一点,我们可以控制组件数据...

    深入理解vue-router之keep-alive

    深入理解 Vue Router 之 Keep-Alive Keep-Alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染。通过使用 Keep-Alive,可以避免组件的重新渲染,从而提高应用程序的性能。 在 Vue Router ...

    vuex + keep-alive实现tab标签页面缓存功能

    "vuex + keep-alive" 的组合就能很好地满足这一需求,通过缓存页面数据,使用户在切换Tab时无需重新加载数据,提升用户体验。 `keep-alive` 是Vue提供的一个内置组件,它能够将组件的状态进行缓存,当组件再次被...

Global site tag (gtag.js) - Google Analytics