我有一个非常大的子查询:
(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中无效。
答案 0 :(得分:0)
我相信这就是你所需要的:
选择Id,(Count /(SELECT MAX(Count)FROM Something))As [Score] FROM Something
说明: 我相信你想在表格中占据最大值。为此,您需要在整个表集上执行子查询,而不是将其限制为特定的ID或对其进行分组。当您通过操作ID执行组时,假设每个Id都是唯一的,它实际上返回Id,Count / Count。如你所知,任何非零数字除以它都是1。