【问题标题】:Merging rows in a single table合并单个表中的行
【发布时间】:2017-10-07 11:20:02
【问题描述】:

我有一张如下所示的表格:

abs0| rel0 | abs1 | rel1
=========================
60  | 0.6  | NULL | NULL 
NULL| NULL |  40  |  0.4

并希望它看起来像这样:

abs0| rel0 | abs1 | rel1
=========================
60  | 0.6  |  40  |  0.4

*这个问题解决了

【问题讨论】:

  • NA = NULL?
  • 是的,NA 代表 NULL
  • @nhdrizzle。 . .我冒昧地删除了您的“第二个”问题。如果您还有其他问题,请将其作为问题提出。您的实际问题有两个正确答案,不接受其中一个是不礼貌的。
  • @nhdrizzle:请阅读someone answer's您的问题时该怎么做。

标签: sql merge rows


【解决方案1】:

你可以使用聚合函数来忽略 null eg::

select min(abs0) as abs0, min(rel0) as rel0, min(abs1) as abs1, min(rel1) as rel1
from my_table 

【讨论】:

  • 附加问题。假设我每个都有第二行。所以前两行是 abs0 和 rel0 的值,然后是两行 abs1 和 rel1 的值。如果我希望我的最终表格将第一行和第三行的值以及第二行和第四行的值合并在一起,我该如何合并它们?
  • @nhdrizzle。 . .我删除了您的编辑。提出一个附加问题作为问题。
  • @nhdrizzle 在您获得有效答案后更改问题是不公平的 .. 因此,如果我对您原始问题的回答是正确的,您应该将我的回答标记为已接受 .. 如果您需要发布一个新问题..最终你可以给我评论新问题的链接..
【解决方案2】:

您可以使用max

SELECT max(c1) AS c1
    ,max(c2) AS c2
    ,max(c3) AS c3
    ,max(c4) AS c4
FROM t1;

结果:

C1   C2     C3   C4
--------------------
60   0.60   40   0.40

您可以查看演示here

【讨论】:

  • 谢谢。作品!我编辑了我的帖子,因为这个主题的一个新问题已经浮出水面。如果您能检查一下,我将不胜感激!
  • @nhdrizzle:请按照 Gordon 的建议提出新问题。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多