合并两行替换pivot中的空值

问题描述 投票:0回答:1

这是我的sql

SELECT a."incomeNumber"  
  , (CASE WHEN b."traitName" = 'sometrait1' THEN b."traitValue" END) AS "numberResult"
  , (CASE WHEN b."traitName" = 'sometrait2' THEN b."traitValue" END) AS "dateResult"  
FROM  "request" a
JOIN "traits" b ON a.id=b."requestId"
WHERE b."traitName" = 'sometrait1'
       OR b."traitName" = 'sometrait2'
GROUP BY a."incomeNumber" 
  , b."traitName"
  , b."traitValue" 

结果 enter image description here

但我希望每个请求获得一行99 1 01.03.2018,我无法解决如何处理特征表,因为sometrait1sometrait2是两个不同的行。我正在使用Postgres 9.6,如果可能的话,我希望这个解决方案是普通的sql。

sql postgresql pivot
1个回答
0
投票

好的,我解决了我的问题。我只需要从GROUP BY语句中删除traitNametraitValue,然后将MAX添加到CASE THEN。

© www.soinside.com 2019 - 2024. All rights reserved.