Какой это синтаксис?

отаю с постоянной базой данных в моем проекте. У меня есть таблица, в которой есть столбец для логических значений, как в 0 или 1, теперь я хочу, чтобы количество всех логических значений, значение которых равно true (или 1).

Я знаю, что я могу добиться этого, используя запрос выбора, получая количество всех выбранных строк, используя предложение where!

Но я не хочу использовать запрос Select с предложением where для этого, потому что он загрузит все строки, а затем я получу счетчик, но я хочу, чтобы счетчик не загружал строки! Предложите другие простые решения, пожалуйста! Спасибо!

 Priyanka Alachiya18 дек. 2017 г., 09:01
@NorthernPoet На самом деле это не так! Поскольку комната постоянная база данных используется в Android!
 Northern Poet18 дек. 2017 г., 09:04
Согласен, извините за недоразумение
 Northern Poet18 дек. 2017 г., 09:00
android тег здесь бесполезен

Ответы на вопрос(2)

Использование агрегатной функцииsum может помочь вам:

select
    sum(
        case
            when t.VALUE = 1 then
                1
            else
                0
        end
    )
from
    table t

Обратите внимание, что движок SQLite будет читать всю таблицу, если она не проиндексирована агрегирующим полем. Это не проблема, если в таблице всего несколько записей, в противном случае лучше рассмотреть возможность использованияfrom ключевое слово проиндексированных полей.

 Priyanka Alachiya18 дек. 2017 г., 11:17
@ NorthernPoet, эй, я попробовал это решение снова! И это сработало с некоторыми пробелами и корректировкой вашего запроса с помощью ключевого слова THEN! Так что большое спасибо :)
 AfzalivE18 окт. 2018 г., 03:48
Какой это синтаксис?
 Yousuf Sohail01 июн. 2018 г., 12:38
Что если нам нужно 2 счета, если значение = 1 и значение = 2?
 Northern Poet19 дек. 2017 г., 01:23
Рад знать, что это помогает тебе. Я сделал небольшое редактирование, чтобы добавить детали и исправитьfrom ключевое слово отсутствует для дальнейших пользователей.
 Priyanka Alachiya18 дек. 2017 г., 10:28
Можете ли вы разработать ответ, пожалуйста? Я использую постоянную библиотеку Room, и она не позволяет мне написать этот запрос в моем классе DAO с аннотацией @Query!
Решение Вопроса

ласс DAO следующим образом:

@Query("SELECT COUNT(is_checked) FROM table WHERE is_checked = 1")
int getNumberOfRows();

Все благодаря Флорине Мунтенеску вhttps://medium.com/@florina.muntenescu

 sud00726 февр. 2019 г., 19:32
Вау, это было на месте! Работал как шарм.
 methodsignature09 янв. 2018 г., 14:13
Для справки, я считаю, что спасибо закомментарий наэта средняя статья
 Priyanka Alachiya09 янв. 2018 г., 14:16
@methodsignature Да, вы правы!

Ваш ответ на вопрос