zoukankan      html  css  js  c++  java
  • mysql每日一题0728---连续多天数据汇总统计

    image

    • 测试数据
    
    CREATE TABLE T0728 
    (
        val VARCHAR(50)
    );
    insert into T0728 (val) values('A10000003');
    insert into T0728 (val) values('A10000001');
    insert into T0728 (val) values('A10000002');
    insert into T0728 (val) values('A10000011');
    insert into T0728 (val) values('A10000004');
    insert into T0728 (val) values('A10000006');
    insert into T0728 (val) values('A10000009');
    insert into T0728 (val) values('A10000010');
    insert into T0728 (val) values('A10000012');
    
    • solution
    WITH TEMP AS ( SELECT ROW_NUMBER() OVER ( ORDER BY VAL ) ID, SUBSTR( VAL, 2, 9 ) AS VAL FROM T0728 )  ---- 临时表,添加自增列
    SELECT GROUP_CONCAT( A ) RESULT  --- 分组连接全部行显示
    FROM
    (
    SELECT
    CONCAT( CONCAT( 'A', MIN ), '', CASE WHEN MAX = MIN THEN '' ELSE CONCAT( '-A', MAX ) END ) A  --- 连接不同连续的数据中的最大值与最小值,补全A
    FROM
    ( SELECT A.VAL - A.ID, MIN( VAL ) MIN, MAX( VAL ) MAX FROM TEMP A GROUP BY 1 ) A 
    
    -- 根据自增列与val值之间的差值是否一致判断是否归为连续
    ) B   
    
    
    
    
    
  • 相关阅读:
    约数个数 和 约数之和
    二分模板
    新生赛补题
    codefores刷题心得3 思维+dp(特别好玩)
    二叉树的遍历及例题
    团队作业七——团队作业分配
    WarPlane——游戏设计文档
    团队作业(五)
    团队作业(四)
    团队项目方案分析
  • 原文地址:https://www.cnblogs.com/onemorepoint/p/15070705.html
Copyright © 2011-2022 走看看