我在postgres11.0中有下表。
col1 col2 col3 col4 col5
1 NCT02582996 acetaminophen+caffeine+dihydroergotamine+metoclopramide. metoclopramide. 204756
1 NCT02582996 acetaminophen+caffeine+dihydroergotamine+metoclopramide. metoclopramide. null
3 NCT02582997 acetaminophen metoclopramide. 204758
4 NCT02582998 ibuprufin ibuprufin null
对于相同的col1值,我只保留col5不为null的行。丢弃另一行。
期望输出为:
col1 col2 col3 col4 col5
1 NCT02582996 acetaminophen+caffeine+dihydroergotamine+metoclopramide. metoclopramide. 204756
3 NCT02582997 acetaminophen metoclopramide. 204758
4 NCT02582998 ibuprufin ibuprufin null
select * from tbl where col5 is not null --excluding row 4
我不知道怎样才能做到这一点。非常感谢您的帮助。
2条答案
按热度按时间tkqqtvp11#
我想你可以用
distinct on
:这将为中的每个不同值生成一行
col1
只是。如果col1
有两个非-null
以及null
价值col5
,然后是非-null
值被保留。如果只有一行可用,则使用null
值,则将其选中。rlcwz9us2#
结果: