我有这个表
id | cnt1 | cnt2 |
---|---|---|
7775 | 1 | //tr>|
7775 | 2 |
根据所需的逻辑,可以将group by id
与相应的聚合函数一起使用,例如max
(或sum
(,后者将忽略null值。
-- sample data
WITH dataset (id, cnt1, cnt2) AS (
VALUES (7775, 1, null),
(7775, null, 2)
)
-- query
select id,
max(cnt1) cnt1,
max(cnt2) cnt2
from dataset
group by id
输出:
id | cnt1 | cnt2 |
---|---|---|
7775 | 1 | 2
使用SubQuery
和join
如下
SELECT T1.Id,
Cnt1,
Cnt2
FROM (SELECT Id,
Cnt1
FROM Table
WHERE Cnt1 IS NOT NULL) T1
JOIN (SELECT Id,
Cnt2
FROM Table
WHERE Cnt2 IS NOT NULL) T2
ON T1.Id = T2.Id