我有一个简单的安装表:
- 产品代码
- 电子邮件
- 安装槽
如果 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`