oralce常用函数

本文详细介绍了SQL中的over()函数及如何与分析函数如rank(), sum(), dense_rank(), row_number()等结合使用的方法,并通过实例展示了如何操作数据。此外还介绍了row_number(), decode(), nvl(), to_date(), to_char(), trunc(), round()等SQL函数的功能和用法。

1over()不能函数不能单独使用,需要和分析函数:rank()、sum()、dense_rank()、row_number()等一起使用。
参数:over(partition by columnname1 order by columnname2)
含义:按columnname1指定的字段进行分组排序,或者说按字段columnname1的值进行分组排序。

虽然这里有分组的字眼,但是它不会像group by一样,将相同的字段变成一条字段。换句话说,这里的分组,只是将相同的字段的记录聚集在一起,
而没有减少记录。要这些记录呈现出一种怎样的状态,就看前面使用的什么分析函数了。

举例:
logtime               createnum
2015-03-09-00            3
2015-03-09-01            1
2015-03-09-02            4
2015-03-09-03            2
2015-03-09-04            7

select logtime,sum(createnum) over(partition by to_char(to_date(logtime,'yyyy-mm-dd24'),'yyyy-mm-dd') order by logtime) as total_create
from  t_test_createrole order by logtime

执行后:
logtime               createnum
2015-03-09-00            3
2015-03-09-01            4
2015-03-09-02            8
2015-03-09-03            10
2015-03-09-04            17


2row_number()和over()分组函数一起使用。返回一个虚拟的行值。和rownum属性差不多,都是返回一个虚拟的行值。
但是rownum如果和排序order by关键字处于同一级别的查询当中,它是先产生虚拟的行值然后再排序的。而row_number是在over函数参数的order by进行排序之后才产生的虚拟列。


3decode(x,y,value1,value2)
含义:如果x等于y,则值为value1;如果不等于则值为value2。


4nvl(x,y)
含义:如果x为null,则取y的值;否则,就为x的值。


5to_date('2015-03-09','yyyy-mm-dd')
含义:把字符串'2015-03-09'变成'yyyy-mm-dd'格式的日期类型
格式类型:yyyy-mm-dd hh24   yyyy-mm-dd hh24:mi    yyyy-mm-dd hh24:mi:ss

6to_char(logtime,'mi')
含义:将logtime日期的分钟部分截取出来

7trunc(value,format)
含义:这个函数是截取单词(truncate)的缩写,因此很容易让人误解是上面(6)的那种模式。

1、将日期截取到日、时、分
        语句                                         结果                               注释
select sysdate from dual;                      2015-03-09 16:24:19                  返回当前系统日期
select trunc(sysdate,'mi') from dual;          2015-03-09 16:24:00                  返回的日期截止到分钟
select trunc(sysdate,'hh') from dual;          2015-03-09 16:00:00                  返回的日期截止到小时
select trunc(sysdate,'dd') from dual;          2015-03-09 00:00:00                  返回的日期截止到日

2、取回当前年、月、周的第一天
       语句                                         结果                               注释
select trunc(sysdate,'d') from dual;           2015-03-08 00:00:00                  返回当前这个星期第一天的日期(周天)
select trunc(sysdate,'mm') from dual;          2015-03-01 00:00:00                  返回当前这个月第一天的日期
select trunc(sysdate,'yy') from dual;          2015-01-01 00:00:00                  返回当年第一天的日期

3、截取数字(纯粹的截取,不会进行逻辑分析,即不会进行四舍五入)
       语句                                         结果                               
select trunc(123.456) from dual;                    123
select trunc(123.456,0) from dual;                  123
select trunc(123.456,1) from dual;                  123.4
select trunc(123.456,-1) from dual;                 120
select trunc(123.456,3) from dual;                   0
select trunc(123.456,4) from dual;                   0

8round(number,digital)
含义:对浮点型数number保留digital小数位并进行四舍五入


 

转载于:https://www.cnblogs.com/feijishuo/p/4323942.html

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值