Могу ли я получить общее количество и количество записей при получении счетчика в SQL, где значение столбца равно 1? - PullRequest
0 голосов
/ 28 апреля 2019

У меня есть таблица 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, а также общее количество. Так что мой результат будет выглядеть так:

1009 *

Count    HiddenCount
    
25          4

Ответы [ 2 ]

1 голос
/ 28 апреля 2019

Использовать условное агрегирование:

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 для этого ответа.

1 голос
/ 28 апреля 2019

Самый простой способ это:

select 
  count(*) Count,
  (select count(*) from Phrase where Hidden = 1) HiddenCount
from Phrase 

Поскольку в SQLite не существует логического типа данных, я сравнил значение столбца Hidden с 1. Вы можете изменить его на значение, которое вы используете в таблице, например:

select count(*) from Phrase where Hidden = 'True'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...