MySQL - Как считать нули и не нули?

У меня есть простая таблица установок :

  • prod_code
  • email
  • install_slot

Если install_slot равен NULL, то это доступный слот для установки. Не ноль - значит, используемый слот. Мне нужно вернуть результат общего количества установок для данного продукта и электронной почты, а также результат использованных установок для данного продукта и электронной почты. Думаю, я мог бы сделать это с двумя запросами, но мне интересно, есть ли способ SQL сделать все это за один?

Я попробовал следующее в качестве безумной догадки, но это не сработало .

SELECT
    i1.`prod_code`,
    COUNT(i1.`email`) AS total_installs,
    COUNT(ISNULL(i2.`install_slot`)) AS used_installs
FROM
    `installs` AS i1
JOIN
    `installs` AS i2
ON
    i1.`prod_code` = i2.`prod_code`
WHERE
    i1.`email` = 'example@example.com'
GROUP BY
    i1.`prod_code`,i2.`prod_code`
15
задан Volomike 11 February 2012 в 23:37
поделиться