Можно ли в SQLite сделать следующее, не используя пользовательские функции. У меня есть две таблицы, которые связаны через общие идентификационные номера. Во второй таблице есть две переменные. Я бы хотел вернуть список результатов, состоящий из идентификатора строки и NULL, если все экземпляры этих двух переменных (а их может быть больше двух) равны NULL, 1, если все они равны 0 и 2, если один или несколько - 1.
Прямо сейчас у меня есть следующее:
SELECT
a.aid,
(SELECT count(*) from W3S19 b WHERE a.aid=b.aid) as num,
(SELECT count(*) FROM W3S19 c WHERE a.aid=c.aid AND H110 IS NULL AND H112 IS NULL) as num_null,
(SELECT count(*) FROM W3S19 d WHERE a.aid=d.aid AND (H110=1 or H112=1)) AS num_yes
FROM W3 a
Для этого нужно пройти через каждый результат следующим образом (грубый псевдокод Python):
if row['num_yes'] > 0:
out[aid] = 2
elif row['num_null'] == row['num']:
out[aid] = 'NULL'
else:
out[aid] = 1
Есть ли более простой способ ? Спасибо!