zoukankan      html  css  js  c++  java
  • mysql8 窗口函数

    窗口函数

    mysql8增加的一个极其强大的统计函数

    窗口函数加排序

    // 1,2,3,4,5,6
    row_number()over()
    row_number()over(partition by cloum1 order by cloum2)
    
    // 1,2,2,3,3,4
    dense_rank()over()
    dense_rank()over(partition by cloum1 order by cloum2)
    
    // 1,2,2,4,4,6
    rank()over()
    rank()over(partition by cloum1 order by cloum2)
    
    sum(cloum1) over(order by cloum2)
    sum(cloum1)over(partition by cloum1 order by cloum2)

    案例

    构建数据表

    drop table if exists passing_number;
    CREATE TABLE `passing_number` (
    `id` int(4) NOT NULL,
    `number` int(4) NOT NULL,
    PRIMARY KEY (`id`));
    
    INSERT INTO passing_number VALUES
    (1,4),
    (2,3),
    (3,3),
    (4,2),
    (6,4),
    (5,5);

    测试sql

    SELECT
    	pn.id,
    	pn.`number`,
    	RANK() OVER(ORDER BY pn.number DESC) `RANK`,
    	DENSE_RANK() OVER(ORDER BY pn.number DESC) `DENSE_RANK`,
    	ROW_NUMBER() OVER(ORDER BY pn.number DESC) `row_number`
    FROM
    	passing_number pn

    mysql分析指令:

    • DESC
    • EXPLAIN
  • 相关阅读:
    AtCoder Regular Contest 093
    AtCoder Regular Contest 094
    G. Gangsters in Central City
    HGOI 20190711 题解
    HGOI20190710 题解
    HGOI 20190709 题解
    HGOI 20190708 题解
    HGOI20190707 题解
    HGOI20190706 题解
    HGOI 20190705 题解
  • 原文地址:https://www.cnblogs.com/jiangdewen/p/15354147.html
Copyright © 2011-2022 走看看