zoukankan      html  css  js  c++  java
  • 日常问题汇总(1) 分组筛选

    今天帮同事处理了一个关于分组筛选的问题,大家可能也遇到过。

    需求:

      有一张表TABLEA,有ID\UID\GROUPID\STATE\CREATETIME五个字段,查找指定ID中,每个组(GROUPID)中最后一条创建(CREATETIME)的记录状态(STATE)为“A”的所有组(GROUPID)。(注:CREATETIME时间唯一)

    步骤:

    1. 我们需要对TABLEA表中的GROUPID字段进行分组。
    2. 在每个分组中我们需要查找STATE等于“A”的最后创建时间。
    3. 然后比较分组中的最后创建时间与STATE为“A”的最后创建时间是否相等来筛选GROUPID
    语句:
    select A.[GROUPID]

    from [dbo].[TABLEA] A

    where UID = '1'

    group by A.[GROUPID]

    having max([CREATETIME]) <> (

    select max([CREATETIME])

    from [dbo].[TABLEA] B

    where B.[GROUPID]= A.[GROUPID]

    and [STATE] = 'A'

    and [UID] = '1')

      

  • 相关阅读:
    linux之uniq
    shell之sort
    tr命令的使用
    AWK 简明教程
    Word Frequency
    10亿个数中选出最大的100个数
    代理模式(也称委托模式)
    java内存相关
    Two Sum
    Java的集合
  • 原文地址:https://www.cnblogs.com/strugglepcx/p/2151095.html
Copyright © 2011-2022 走看看