У меня есть массив с результатами = ['5', '2', '11', '12', '4']; Теперь я хочу сделать подсчет SQL SELECTION на основе такого массива, то есть выполнить команду SQL SELECT IN Array. Я хочу вернуть количество строк, которые есть в этом массиве из каждого элемента, я пробовал






Результат, который вы получили, - это именно то, что я ожидал от заявления COUNT. Думаю, вы забыли добавить GROUP BY company_two.
РЕДАКТИРОВАТЬ
Чтобы справиться с ситуацией, когда компании не имеют никакой записи, вы можете:
SELECT s.company_two_id, COUNT(s.id)
FROM supplies_table s
RIGHT OUTER JOIN companies_table c ON s.company_two_id = c.company_id
WHERE company_two_id IN (...)
GROUP BY s.company_two_id;
Спасибо group by GROUP BY company_two_id, за исключением того, что когда он равен нулю, он возвращает null. Пожалуйста, помогите, как я могу написать что-то вроде CASE WHEN count (id) = null count (id) = 0. Это правильно?
Что-то вроде: var q = 'SELECT count (id) CASE WHEN count (id) = NULL THEN count (id) = 0 END FROM обеспечивает WHERE company_two_id IN (' + results.join (',') + ')';
Это потому, что для этих идентификаторов компании нет строки. Если у вас есть другая таблица со списком компаний, вы можете попробовать сделать RIGHT OUTER JOIN, чтобы счет применялся к ним.
:) присоединение делает это! большое спасибо! Я просто редактирую его, чтобы он работал именно так, как хочу, но он уже работает. Большое спасибо.!!!!
Попробуйте ниже:
select COALESCE(count(a), 0) from table1 where b in (something) group by b
Да, я только что попробовал, но это не дает того, что мне нужно. В любом случае большое спасибо!
Но я пытаюсь сделать это наоборот, например, сказать COUNT (COALESCE (a, 0)) и посмотреть оттуда, но я полагаю, это должно сработать
Спасибо за ответ. Позвольте мне попробовать сгруппировать. Я также заметил, что счетчик возвращает значения NULL, когда нет затронутых строк, затронутых таким элементом массива. Позвольте мне попробовать группировку