Select 来自 table 的 ID 的多条记录的单行数据

Select data in single row for multi records of an ID from table

我在 PostgreSQL 数据库中有以下 table

我想要一个可以产生以下结果的查询。

谢谢

试试这个 -

SELECT record_id
      ,MAX(CASE WHEN Node = 'A' THEN state) END AS A
      ,MAX(CASE WHEN Node = 'B' THEN state) END AS B
      ,MAX(CASE WHEN Node = 'C' THEN state) END AS C
FROM YOUR_TABLE
GROUP BY record_id

使用条件聚合。

SELECT record_id,
       max(case when node = 'A' then state end) as A,
       max(case when node = 'B' then state end) as B,
       max(case when node = 'C' then state end) as C
FROM table1 
group by record_id
order by record_id;

SELECT record_id,
       min(case when node = 'A' then state end) as A,
       min(case when node = 'B' then state end) as B,
       min(case when node = 'C' then state end) as C
FROM table1 
group by record_id
order by record_id;

结果:

record_id   a   b   c
----------------------
1000000     CC  CC  CC
1000001     CC  CC  CC
1000002     CC  CC  CC

DEMO