精华内容
下载资源
问答
  • ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)

    万次阅读 多人点赞 2018-09-18 19:11:38
    语法格式:row_number() over(partition by 分组列 order by排序列 desc) row_number() over()分组排序功能: 在使用 row_number() over()函数时候,over()里头的分组以及排序的执行晚于 where 、group by、 order...

    语法格式:row_number() over(partition by 分组列 order by 排序列 desc)

    row_number() over()分组排序功能:

    在使用 row_number() over()函数时候,over()里头的分组以及排序的执行晚于 where 、group by、  order by 的执行。

    例一:

    表数据:

    create table TEST_ROW_NUMBER_OVER(
           id varchar(10) not null,
           name varchar(10) null,
           age varchar(10) null,
           salary int null
    );
    select * from TEST_ROW_NUMBER_OVER t;
    
    insert into TEST_ROW_NUMBER_OVER(id,name,age,salary) values(1,'a',10,8000);
    insert into TEST_ROW_NUMBER_OVER(id,name,age,salary) values(1,'a2',11,6500);
    insert into TEST_ROW_NUMBER_OVER(id,name,age,salary) values(2,'b',12,13000);
    insert into TEST_ROW_NUMBER_OVER(id,name,age,salary) values(2,'b2',13,4500);
    insert into TEST_ROW_NUMBER_OVER(id,name,age,salary) values(3,'c',14,3000);
    insert into TEST_ROW_NUMBER_OVER(id,name,age,salary) values(3,'c2',15,20000);
    insert into TEST_ROW_NUMBER_OVER(id,name,age,salary) values(4,'d',16,30000);
    insert into TEST_ROW_NUMBER_OVER(id,name,age,salary) values(5,'d2',17,1800);
    

    一次排序:对查询结果进行排序(无分组)

    select id,name,age,salary,row_number()over(order by salary desc) rn
    from TEST_ROW_NUMBER_OVER t

    结果:

    进一步排序:根据id分组排序

    select id,name,age,salary,row_number()over(partition by id order by salary desc) rank
    from TEST_ROW_NUMBER_OVER t

    结果:

     再一次排序:找出每一组中序号为一的数据

    select * from(select id,name,age,salary,row_number()over(partition by id order by salary desc) rank
    from TEST_ROW_NUMBER_OVER t)
    where rank <2

    结果:

    排序找出年龄在13岁到16岁数据,按salary排序

    select id,name,age,salary,row_number()over(order by salary desc)  rank
    from TEST_ROW_NUMBER_OVER t where age between '13' and '16'

    结果:结果中 rank 的序号,其实就表明了 over(order by salary desc) 是在where age between and 后执行的

    例二:

    1.使用row_number()函数进行编号,如

    select email,customerID, ROW_NUMBER() over(order by psd) as rows from QT_Customer

    原理:先按psd进行排序,排序完后,给每条数据进行编号。

    2.在订单中按价格的升序进行排序,并给每条记录进行排序代码如下:

    select DID,customerID,totalPrice,ROW_NUMBER() over(order by totalPrice) as rows from OP_Order

    3.统计出每一个各户的所有订单并按每一个客户下的订单的金额 升序排序,同时给每一个客户的订单进行编号。这样就知道每个客户下几单了:

    select ROW_NUMBER() over(partition by customerID  order by totalPrice)
     as rows,customerID,totalPrice, DID from OP_Order

    4.统计每一个客户最近下的订单是第几次下的订单:

    with tabs as  
    (  
    select ROW_NUMBER() over(partition by customerID  order by totalPrice)
     as rows,customerID,totalPrice, DID from OP_Order  
     )  
    select MAX(rows) as '下单次数',customerID from tabs 
    group by customerID 

    5.统计每一个客户所有的订单中购买的金额最小,而且并统计改订单中,客户是第几次购买的:

    思路:利用临时表来执行这一操作。

    1.先按客户进行分组,然后按客户的下单的时间进行排序,并进行编号。

    2.然后利用子查询查找出每一个客户购买时的最小价格。

    3.根据查找出每一个客户的最小价格来查找相应的记录。

        with tabs as  
         (  
        select ROW_NUMBER() over(partition by customerID  order by insDT) 
    as rows,customerID,totalPrice, DID from OP_Order  
        )  
         select * from tabs  
        where totalPrice in   
        (  
        select MIN(totalPrice)from tabs group by customerID  
         ) 

    6.筛选出客户第一次下的订单。

    思路。利用rows=1来查询客户第一次下的订单记录。

        with tabs as  
        (  
        select ROW_NUMBER() over(partition by customerID  order by insDT) as rows,* from OP_Order  
        )  
        select * from tabs where rows = 1 
        select * from OP_Order 

    7.注意:在使用over等开窗函数时,over里头的分组及排序的执行晚于“where,group by,order by”的执行。

        select   
        ROW_NUMBER() over(partition by customerID  order by insDT) as rows,  
        customerID,totalPrice, DID  
        from OP_Order where insDT>'2011-07-22' 

     

    展开全文
  • number of parameters, which is 0)结合网上各位大佬给出的解答,终于将其解决。问题出在手写的sql出错。这个报错的含义指的是第一个参数的问题,也就是说问题出在?左右。这是我写的sql:Stri...

    今天在操作Mysql进行删除操作时,出现了这么一个错误。

    Parameter index out of range (1 > number of parameters, which is 0)

    结合网上各位大佬给出的解答,终于将其解决。

    问题出在手写的sql出错。

    这个报错的含义指的是第一个参数的问题,也就是说问题出在?左右。

    这是我写的sql:

    String sql = "DELETE FROM T_PUB_NODE_INFO WHERE C_IP =?";

    看起来是不是没有错误。。。

    原来是我的问号是中文输入法下的?,不是英文输入下的?。改了之后就好了。

    另外网上也有其他错误情况。

    例如这样写:

    String sql = "DELETE FROM T_PUB_NODE_INFO WHERE C_IP ='?'";

    还有在MyBatis下报这个错误可能是你 like 语句写错了。

    在mybatis里面写就是应该是 like  '%${name} %' 而不是 '%#{name} %'  。

    ${name} 是不带单引号的,而#{name} 是带单引号的。

    喜欢的朋友欢迎点赞,评论,关注哦~~

     

    展开全文
  • Favourite Number

    千次阅读 2020-01-15 12:23:31
    Volodymyr’s favourite number is A and it has an odd number of positive divisors. When you add K to this number, the resulting sum also has an odd number of positive divisors. Given K, find all ...

    Volodymyr’s favourite number is A and it has an odd number of positive divisors. When you add K to this number, the resulting sum also has an odd number of positive divisors. Given K, find all possible values of A
    Volodymyr’s favourite number.
    Input
    The only line of input contains K a positive integer not exceeding 1e9

    Output
    On the first line, print the number of possible values of A. If the number of such values is greater than zero, on the second line print all possible values of A in ascending order, separated by a single space.
    Examples
    Input

    1
    
    Output
    
    0
    
    Input
    
    2
    
    Output
    
    1
    -1
    

    Note

    Note that since zero has infinitely many divisors, it cannot be classified as number with an odd number of divisors.
    题意很简单,给你一个数K,让你找一个A,A要满足A有奇数个正因子,且A加K后仍有奇数个正因子。
    思路:首先你要知道只有平方数才有奇数个因子,所以,A要为平方数或者平方数的负数形式。且得到的也为平方数或者平方数的负数形式。
    1.(a^2 )+ (b ^2)=k 压入aa,bb
    2.(a^2 )-k =(b ^2) 压入-aa,bb
    `` 记得去除零的情形

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    set<ll>s;
    int main()
    {
    	ios::sync_with_stdio(false);
    	cin.tie(0);cout.tie(0);
    	ll k;
    	cin>>k;
    	ll a,b,a1,b1;
    	for(int i=1;i*i<=k;i++)
    	{
    		a1=k-i*i;
    		a=sqrt(a1);
    		if(a*a==a1)
    		{
    			if(i*i!=0&&a!=0)
    			{
    				s.insert(-i*i);
    				s.insert(-a1);	
    			}					
    		}
    		
    		if((k-i*i)%(2*i)==0)
    		{
    			a=(k-i*i)/(2*i);
    			a1=a*a;
    			b1=k+a1;
    			if(a1==0||b1==0)
    			{
    				continue;
    			} 
    			s.insert(a1);
    			s.insert(-b1);
    		}
    		
    	}
    	cout<<s.size()<<endl;
    	set<ll>::iterator it=s.begin();
    	for(;it!=s.end();it++)
    	{
    		cout<<*it<<" ";
    	}
    	
    } 
    
    展开全文
  • Number类型

    千次阅读 2018-08-27 12:32:42
    Number类型 一、相关概念 1.定义 Number是与数字值对应的应用类型 创建Number对象,可以在调用Number构造函数时向其中传递相应的数值 Number类型也重写了valueOf()、toLocaleString()和...

    Number类型

    一、相关概念

    1.定义

    1. Number是与数字值对应的应用类型
    2. 创建Number对象,可以在调用Number构造函数时向其中传递相应的数值
    3. Number类型也重写了valueOf()toLocaleString()toString()方法。重写后的valueOf()方法返回对象表示的基本类型的值,另外两个方法则返回字符串形式的数值。
    4. 可以为toString()方法传递一个表示基数的参数,告诉它返回几进制数值的字符串形式
    var nnumberObject=new Number(10); 
    
    var num=10;
    alert(num.toString());//"10"
    alert(num.toString(2));//"1010"
    alert(num.toString(8));//"12"
    alert(num.toString(10));//"10"
    alert(num.toString(16));//"a"
    

    二、格式化数值方法

    1.toFixed()

    1. toFixed()方法会按照指定的小数位返回数值的字符串表示
    2. 如果数值本身包含的小数位比指定的还多,那么接近指定的最大小数位的值就会舍入
    3. 能够自动舍入的特性,使得toFixed()方法很适合处理货币值
    4. 不同的浏览器给这个方法设定的舍入规则可能会有所不同。在给toFixed()传入0的情况下,IE 8及之前版本不能正确舍入范围在{(-0.94,-0.5],[0.5,0.94)}之间的值。对于这个范围内的值,IE会返回0,而不是-1或1;其他浏览器都能返回正确的值。IE 9修复了这个问题
    var num=10;
    alert(num.toFixed(2));//"10.00"
    
    var num=10.005;
    alert(num.toFixed(2));//"10.01"
    

    2.toExponential()

    1. toExponential()方法返回以指数表示法(也称e表示法)表示的数值的字符串形式
    2. toExponential()也接受一个参数,而且该参数同样也是指定输出结果中的小数位数
    var num=10;
    alert(num.toExponential(1));//"1.0e+1"
    //以上代码输出了"1.0e+1";不过,这么小的数值一般不必使用e表示法
    
    3.toPrecision()
    1. toPrecision()方法可以以合适的格式表示某个数值的最合适格式
    2. 对于一个数值来说,toPrecision()方法可能会返回固定大小(fixed)格式,也可能返回指数格式;具体规则看哪种格式符合
    3. 这个方法接受一个参数,即表示数值的所有数字的位数(不包括指数部分)
    4. toPrecision()会根据要处理的数值决定到底是调用toFixed()还是调用toExponential(),而这三个方法都可以通过向上或向下舍入,做到以最准确的形式表示带有正确小数位的值
    var num=99;
    alert(num.toPrecision(1));//"1e+2"
    alert(num.toPrecision(2));//"99"
    alert(num.toPrecision(3));//"99.0"
    

    三、补充

    1. 不建议直接实例化Number类型,原因与显示创建Boolean对象一样
    2. 在使用typeofinstanceof操作符测试基本类型数值与引用类型数值时,得到的结果完全不同
    3. 在使用typeof操作符测试基本类型数值时,始终会返回"number",而在测试Number对象时,则会返回"Object"
    4. Number对象是Number类型的实例,而基本类型的数值则不是
    var numberObject=new Number(10);
    var numberValue=10;
    alert(typeof numberObject);//"object"
    alert(typeof numberValue);//"number"
    alert(numberObject instanceof Number);//true
    alert(numberObject instanceof Number);//false
    

    源自
    源于整理《JavaScript高级程序设计》

    展开全文
  • 1、string 转 number 类型:有两种方法(1)parseInt()、parseFloat() (2)Number() 区别:parseInt()、parseFloat() 转换第一个无效字符之前的字符串,例如parseInt(1.2.3)为1,parseFloat(1.2.3)为1.2; Number...
  • Kettle Number & BigNumber Format

    千次阅读 2018-11-05 19:13:02
    在Spoon的文件栏, Edit-&gt;Edit Kettle Properties files 将 KETTLE_DEFAULT_BIGNUMBER_FORMAT 项配置为0.##### ...否则的话, 默认Kettle对它认为是BigNumber的列 ,把0 会强行写成0.0, 造成不必要的冗余...
  • A number that will be the same when it is written forwards or backwards is known as aPalindromic Number. For example, 1234321 is a palindromic number. All single digit numbers are palindromic numbers....
  • Sequence Number

    千次阅读 2018-04-25 13:27:20
    1570: Sequence Number时间限制: 1 Sec 内存限制: 1280 MB题目描述 In Linear algebra, we have learned the definition of inversion number: Assuming A is a ordered set with n numbers ( n &...
  • A number that will be the same when it is written forwards or backwards is known as aPalindromic Number. For example, 1234321 is a palindromic number. All single digit numbers are palindromic numbers....
  • Invalid number format for port number

    千次阅读 2016-09-07 19:53:27
    Invalid number format for port number(链接ORACLE时忘记加端口出现的错误) JspException:org.apache.commons.dbcp.SQLNestedException: Cannotcreate PoolableConne ctionFactory, cause: Io 异常: ...
  • Number.EPSILON

    千次阅读 2018-01-20 22:15:17
    Number.EPSILON ES6 在Number对象上面,新增一个极小的常量Number.EPSILON。根据规格,它表示 1 与大于 1 的最小浮点数之间的差。 对于 64 位浮点数来说,大于 1 的最小浮点数相当于二进制的1.00..001,...
  • 成功解决ValueError: Number of passed names did not match number of header fields in the file 目录 解决问题 解决思路 解决方法 解决问题 ValueError: Number of passed names did not ...
  • Invalid parameter number: number of bound variables does not match number of tokens.
  • LeetCode Happy Number

    千次阅读 2015-05-01 14:03:19
    1. 题目Write an algorithm to determine if a number is "happy".A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the ...
  • v-model.number 使用修饰符.number可以将输入的数据转换为Number类型,否则虽然你输入的是数字. v-model.trim 如果要自动过滤用户输入的首尾空白字符,可以给 v-model 添加 trim 修饰符 ...
  • JS中string转为number方法

    万次阅读 2019-07-25 22:32:26
    parseInt, parseFloat 最喜欢用的Number(string); 例如: Number(‘1000.1’) => 1001.1
  • 需求:这时就需要吊起移动端数字键盘,input的type就必须设置成number,当然tel类型也可以,但是无法输入小数点。当然如果精力允许,你也可以自定义数字键盘是最好的,网上也有很多Vue数字键盘组件。 踩坑:一但用...
  • lay-verify="number" ,即可。 ----------1/17更新------------ 若设置type="number",在表单提交的时候,会提示只能输入整数,如上图。在更改为type="text" lay-verify="number"后,表单提交则可以正确验证带...
  • type为number的input标签输入小数的方法

    万次阅读 多人点赞 2016-09-17 03:25:13
    type为number的input标签输入小数的方法
  • Given a collection of number segments, you are supposed to recover the smallest number from them. For example, given { 32, 321, 3214, 0229, 87 }, we can recover many numbers such like 32-321-3214-0229...
  • es number_of_shards和number_of_replicas

    千次阅读 2019-09-26 16:31:16
    number_of_replicas 是数据备份数,如果只有一台机器,设置为0 number_of_shards 是数据分片数,默认为5,有时候设置为3 可以在线改所有配置的参数,number_of_shards不可以在线改 curl -XPUT '10.0.120.39:...
  • 把scn号转成时间时遇到了报错ORA-08181: specified number is not a valid system change number 记录一下原因 SQL> SELECT SCN_TO_TIMESTAMP(ORA_ROWSCN) FROM emp; SELECT SCN_TO_TIMESTAMP(ORA_ROWSCN) ...
  • es 集群 number_of_shards、number_of_replicas

    千次阅读 2020-05-19 13:58:59
    number_of_shards 是指索引要做多少个分片,只能在创建索引时指定,后期无法修改。 number_of_replicas 是指每个分片有多少个副本,后期可以动态修改 primary shard:主分片,每个文档都存储在一个分片中,当你存储...
  • SAP Serial Number

    千次阅读 2018-10-12 18:19:31
    SAP Serial Number在SD中的应用 SAP中有一个序列号管理的功能,启用这个功能,我们就可以对物料进行精细到「个」地追踪管理。物料主数据为我们提供了一个物料区别于另一个物料的详细信息,而序列号管理则可以让我们...
  • leetcode 202 Happy Number

    千次阅读 2015-04-29 17:06:19
    Write an algorithm to determine if a number is "happy". A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares o
  • object 转 Number

    千次阅读 2016-10-11 18:39:02
    long longNumber=((Number)obj[1]).longValue();
  • Android NumberPicker

    千次阅读 2016-08-08 22:54:50
    NumberPicker是一个滑动数字选择控件,把指定范围内数字排列在垂直方向上下滑动,交互体验与之前讲过的TimePicker,DatePicker类似。  NumberPicker控件主要用到的监听事件有两个分别是:  NumberPicker....
  • bignumber.js API

    千次阅读 2020-01-15 10:06:50
    import BigNumber from 'bignumber.js' 文档 加法 plus 语法 .plus(n [, base]) 参数值 n (必需): number|string|BigNumber 参与计算的数字 base: number 进制 (默认为十进制) 返回值 BigNum...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 587,024
精华内容 234,809
关键字:

number