我有以下表示的SQL表:
public class Phrase
{
[PrimaryKey, NotNull]
public string PhraseId { get; set; }
public bool Hidden { get; set; }
}
我知道我得到了所有这样的行数:
select count(*) as Total from Phrase
但是使用SQL还能获得Hidden = 1的那些行的计数以及总数。所以我的结果看起来像:
Count HiddenCount
25 4
答案 0 :(得分:1)
最简单的方法是这样
select
count(*) Count,
(select count(*) from Phrase where Hidden = 1) HiddenCount
from Phrase
由于SQLite中不存在布尔数据类型,因此我将列Hidden
与1
的值进行了比较。您可以将其更改为表中使用的值,例如:
select count(*) from Phrase where Hidden = 'True'
答案 1 :(得分:1)
使用条件聚合:
select count(*) as cnt,
sum(case when hidden = 1 then 1 else 0 end) as hiddencnt
from phrase;
或者:
select count(*) as cnt,
sum(hidden) as hiddencnt
from phrase;
SQLite中没有本机布尔类型,因此假设hidden
是仅接受此答案的0
和1
值的数字。