zoukankan      html  css  js  c++  java
  • SQL高级应用

    追加:row_number, rank, dese_rank, ntile

    1. row_number: 为查询出来的每一行记录生成一个序号。

    SELECT row_number() OVER(ORDER BY field) AS row_n

    FROM tablename;

    分页查询:

    with t_towtable

    as (select row_number over(order by field1) as row_number from tb)

    select * from t_rowtable where row_number > 1 and row_number > 4 order by field1;

    ROW_NUMBER() OVER([<partition_by_caluse>] <order_by_clause>);

    2. rank: 返回结果集的分区内每行的排名:

    RANK() OVER([<partition_by_caluse_按照某个字段分区>]<order_by_clause_排序>);

    Examples:

    WITH CustomerSum AS

    (SELECT CustomerID, SUM(totalDue) AS total

      FROM sales GROUP BY CustomerID)

    SELECT * RANK() OVER (ORDER BY total DESC) AS RANK

    FROM CustomerSum

    3. dense_rank: 顺序排序(生成的序号是连续的)。

    4. ntile:取前多少个名次的排名的行。

    SELECT SalesID, NTILE(1000) OVER(ORDER BY CustomerID) AS NTile

    FROM Sales

    桶数的计算:

    if(记录数%桶数 == 0)

          每桶记录数都为记数总数/桶数

    else

          recordCount1 = total/tongNum + 1;

          int n = 1;

          m = recordCont1*n;

    while((total - m) % (tongNum - n)) != 0)

    {

          n++;

          m = recordCount1 * n;

    }

    recordCount2 = (total - m) / (tongNum - n);

    将前n个桶记录设置为recordCount1

    将n+1个到后面所有桶记为recordCount2

    路慢慢其休远羲,吾将上下而求所
  • 相关阅读:
    计算机网络基础1
    jmeter 之系统参数根据条件修改
    jmeter 之变量传递
    ant 执行jmeter脚本
    ant安装报错:ANT_HOME is set incorrectly or ant could not be located. Please set ANT_HOME.
    数据类型的转换
    你真的了解JavaScript的数据类型吗?
    js的一些常识
    数组扁平化
    vue.config.js
  • 原文地址:https://www.cnblogs.com/garinzhang/p/3639474.html
Copyright © 2011-2022 走看看