【问题标题】:Get max value from table and group by with column having comma separated value with different order or having more values从表中获取最大值并按列分组,该列具有不同顺序的逗号分隔值或具有更多值
【发布时间】:2019-12-12 14:36:42
【问题描述】:

我有一张这样的表格和数据

CREATE TABLE temp (
  `name` varchar(20),
  `ids` varchar(20),
  `value1` int,
   `value2` int
);

INSERT INTO temp(`name`,`ids`, `value1`, `value2`) values
  ('A', '1,2', 10, 11),
  ('A', '2,1', 12, 100),
   ('A', '1,2,3', 20, 1),
     ('B', '6', 30, 10)

我需要通过 Name 以及 ids

来获取最大值

我正在使用以下查询来获取最大值。

select name, ids, max(value1) as value1, max(value2) as value2 
from temp
group by name,ids

【问题讨论】:

    标签: database sybase sap-ase


    【解决方案1】:

    该问题已被标记为 Sybase ASE,但 ASE 中的“create table”和“insert”命令无效,因此不确定这是标签不正确还是“create table”和“insert”命令错误的问题...所以,假设这是一个 Sybase ASE 数据库:

    我假设所需的输出是显示value = max(value) 所在的那些行。

    首先我们将设置我们的测试用例:

    create table mytab
    (name  varchar(20)
    ,ids   varchar(20)
    ,value int)
    go
    
    insert into mytab (name,ids,value) values ('A', '1,2'  , 10)
    insert into mytab (name,ids,value) values ('A', '2,1'  , 12)
    insert into mytab (name,ids,value) values ('A', '1,2,3', 20)
    insert into mytab (name,ids,value) values ('B', '6'    , 30)
    go
    

    这是一种可能的解决方案:

    select t.name, t.ids, t.value
    from   mytab t
    join   (select name,max(value) as maxvalue from mytab group by name) dt
    on     t.name  = dt.name
    and    t.value = dt.maxvalue
    order by t.name
    go
    
     name                 ids                  value
     -------------------- -------------------- -----------
     A                    1,2,3                         20
     B                    6                             30
    

    子查询/派生表为每个唯一的name 提供max(value)。然后,主查询将这些 name/max(value) 对连接回主表,为我们提供所需的行(即 value = max(value) 的位置)。

    在 ASE 15.7 SP138 上测试。

    【讨论】:

    • 如果我有第三列并且还需要从中找到最大值怎么办?
    猜你喜欢
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-01
    • 2016-05-14
    相关资源
    最近更新 更多