查询以确认具有相同ID的两行

时间:2018-07-12 12:17:39

标签: mysql sql

我有一个表,其结构如下:-

chkey    chvalue        updatetime          unit_id
ch1       27            7/11/2018 1:08          35
ch2       89            7/12/2018 1:08          35
ch1       26            7/13/2018 2:08          46
ch2       77            7/14/2018 2:08          46
ch1       24            7/15/2018 3:08          47
ch2       77            7/16/2018 3:08          47

我想要的是用于生成如下结果的查询:-

    updatetime          ch1     ch2     unit_id
    7/11/2018 1:08       27      89      35
    7/11/2018 2:08       26      77      46
    7/11/2018 3:08       24      77      47

注意::对于任何unit_id,chkey最多可以为ch1 .... ch64。

1 个答案:

答案 0 :(得分:0)

只需使用条件聚合:

select min(updatetime),
       max(case when chkey = 'ch1' then chvalue end) as ch1,
       max(case when chkey = 'ch2' then chvalue end) as ch2,
       unit_id
from t
group by unit_id;

您只需为每个chkey添加62个表达式。