代码之家  ›  专栏  ›  技术社区  ›  I Love Stackoverflow

多列上的SQL表筛选器

  •  0
  • I Love Stackoverflow  · 技术社区  · 8 年前

    我的SQL表如下:

    A   B   C   D   E
    1   1   1   1   0
    1   1   1   1   2
    1   2   1   1   1
    1   2   1   1   0
    2   1   1   1   3
    2   1   1   1   4
    2   1   2   2   1
    3   1   1   2   0
    3   1   1   2   1
    

    在这里 是: A、 B、C、D、E

    需要分配的内容如下:

    1. A、B、C、D列的值将相同。
    2. 如果A列的值相同,但 B、 C、D 应添加到结果中
    3. 对于列的结果值中的每一行 E 最低限度

    A   B   C   D   E
    1   1   1   1   0
    1   2   1   1   0
    2   1   1   1   3
    2   1   2   2   1
    3   1   1   2   0
    

    到目前为止,我想说的是:

    SELECT t1.*
    FROM TestTable t1, 
         TestTable t2
    WHERE   (t1.A = t2.A
        AND t1.B = t2.B
        AND t1.C = t2.C
        AND t1.D = t2.D
        AND t1.E < t2.E)
    

    但在这个查询中,我没有得到唯一的行,该行的列值相同 A. 但列的值不同

    1 回复  |  直到 8 年前
        1
  •  3
  •   Gordon Linoff    8 年前

    据我所知,你想要:

    select A, B, C, D, MIN(E)
    from testtable t
    group by A, B, C, D;