zoukankan      html  css  js  c++  java
  • 统计相邻相同行数量 MSSQL Server / 疑难问题

    A
    A
    A
    B
    B
    A
    C
    C
    B
    结果:
    A 3
    B 2
    A 1
    C 2
    B 2

    解决方法:

    if object_id('[tb]') is not null drop table [tb]
    go
    create table [tb]([col] varchar(1))
    insert [tb]
    select 'A' union all
    select 'A' union all
    select 'A' union all
    select 'B' union all
    select 'B' union all
    select 'A' union all
    select 'C' union all
    select 'C' union all
    select 'B'

    ;with fly as
    (select *,rn=row_number() over(order by getdate()) from tb)

    select col,count(1) as cnt
    from(
    select col,rn,
    gid=rn-(select count(1) from fly where col=t.col and rn<t.rn)
    from fly t
    ) a
    group by col,gid
    order by min(rn)
    /**
    col cnt
    ---- -----------
    A 3
    B 2
    A 1
    C 2
    B 1

    (5 行受影响)

    *
    */



  • 相关阅读:
    systemctl
    防火墙firewalld
    k8s 基础概念
    进程
    模板问题
    自动发现
    oracle操作
    aix 10代oracle zabbix2.4.4 日志监控
    paramiko
    test
  • 原文地址:https://www.cnblogs.com/bugY/p/2199333.html
Copyright © 2011-2022 走看看