【发布时间】:2021-12-30 21:29:12
【问题描述】:
我有下表,我正在尝试查找每个唯一 name 元素的总数。问题是,other: 1 和 other: Null 应该是不同的元素,但我的查询是将它们组合在一起。我遇到的问题是null 没有被算作一行。但是当我使用count(*)时,other: 1和other: Null被组合在一起了。
| Name | id | GroupId |
|---|---|---|
| Other | 1 | 8 |
| Other | Null | 8 |
| 2 | 8 | |
| 3 | 8 | |
| 2 | 8 |
目标是返回:
[{Other: 1}, {Other: 1}, {Facebook: 2}, {Google: 1}]
我试过了:
SELECT name, count(id)
FROM table
WHERE id IS NOT NULL
AND groupId='${id}'
GROUP BY name
UNION
SELECT name, count(*)
FROM table
WHERE id IS NULL
AND groupId ='${id}'
GROUP BY name
还有:
SELECT name, count(id)
FROM table
WHERE id='${id}'
GROUP BY name
我怎样才能得到上面想要的返回值?
【问题讨论】:
标签: sql postgresql