我有一个简单的 安装 表:
- prod_code
- install_slot
如果 install_slot 为 NULL,则它是可用的安装槽。如果不为 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`