合并两行替换pivot中的空值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了合并两行替换pivot中的空值相关的知识,希望对你有一定的参考价值。

这是我的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。

答案

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

以上是关于合并两行替换pivot中的空值的主要内容,如果未能解决你的问题,请参考以下文章

是啥 ?。运营商和我可以在哪里使用? JavaScript中的空值合并运算符[重复]

SQL触发器用INSERT上的当前日期替换表中的空值?

ES11中的空值合并运算符

如何用函数链中的空字符串替换数据库中的空值

使用mysql中的select语句替换sql中的空值?

EXCEL这列中的空单元格为啥选“空值”定位不了?