【发布时间】:2012-03-03 22:35:02
【问题描述】:
我有一个简单的安装量表:
- prod_code
- 电子邮件
- 安装槽
如果 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`
【问题讨论】:
-
我不懂你,Lightness。以“我猜”开头的带问号的句子的哪一部分你不明白?
-
没有。我不是在说那句话,是吗?
-
嗯?我还是不关注你。
-
我仍然没有发现你的 cmets 很有建设性。我的反对意见也被赞成,在你抱怨我的问题风格不清楚的 1 分钟内,我实际发布问题的 2 分钟内,有人轻松抓住了问题并解决了问题。我的意思是,至少我展示了我尝试过的东西,而且我的测试用例并没有涉及很多脑力来理解。我的意思是,拜托,你是一个 C++ 程序员——你见过更难的问题。
-
我没有说这个问题很难;甚至没有一次。我试图训练您摆脱说“它不起作用”而不是描述程序行为并将其与您想要的行为进行比较的不良习惯。一个编程问题应该永远包含“它不起作用”的字眼。但我已经放弃了。
标签: mysql sql group-by isnull notnull