SQL - 按位分组

3

我有一个只包含一列位数据的SQL表。如果该表中只出现了一个位值(在我的例子中为1),那么我应该如何编写SELECT语句,以显示表中两个位值的出现情况,即使另一个位值没有出现也可以呢?这是我要实现的结果:

+----------+--------+
| IsItTrue | AMOUNT |
+----------+--------+
|     1    |   12   |
|     0    |  NULL  |
+----------+--------+

我已经尝试了谷歌搜索答案,但没有成功,因为英语不是我的母语,而且我对SQL术语也不太熟悉。


3
你正在使用哪个关系型数据库管理系统产品? - Thilo
这是微软 SQL Server v.11。 - liverbox
1个回答

3
select IsItTrue, count(id) as Amount from 
(select IsItTrue, id from table
union
select 1 as IsItTrue, null as id
union
select 0 as IsItTrue, null as id) t
group by bool

真的,但是op没有具体说明,所以我需要猜一个答案。 - overflowed
@GordonLinoff 我误读了。我撤回,这是标准的SQL。+1 - Ben Lee
@BenLee 标准的 SQL 语句需要包含 FROM 子句。 - Martin Smith
@overflowed . . . 你应该使用 union all 而不是 union。没有必要承担去除重复项的开销。 - Gordon Linoff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接