我有一个非常大的子查询:
(SELECT Id, Count [...] FROM Something) Counts我想为每个Id创建一个分数,即计数除以最大计数。
我试过了:
SELECT Id, Count/(SELECT MAX(Count)) AS Score
FROM (SELECT Id, Count [...] FROM Something) Counts但是这只返回第一行!
如果我做一个GROUP BY Id,所有的分数都等于1(因为取的是每个Id的最大值,而不是所有Id的最大值)。
你知道我能做什么吗?我知道在某些情况下,我们可以在WITH子句中嵌入子查询,但这在MySQL中是无效的。
发布于 2015-11-03 08:03:39
我相信这就是你所需要的:
Select Id,(Count/(SELECT MAX(Count) FROM Score ))作为某事物的分数
说明:我相信你想要取表中所有计数的最大值。为此,您需要在整个表集合上执行子查询,而不是将其限制为特定的id,或对其进行分组。当您通过对Id进行操作来执行组时,假设每个Id都是唯一的,它实际上是返回ID,Count/Count。正如你所知道的,任何非零数除以它本身就是1。
https://stackoverflow.com/questions/33489114
复制相似问题