2015-11-02 56 views
0

標準化專欄中,我有一個非常大的子查詢:MySQL的:從大的子查詢

(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中無效。

+1

請問你是否不太準確描述你的問題,因爲我們甚至可能明白你想要做什麼,如果你這樣走 –

回答

0

我相信這是你所需要的:

選擇ID,(計數/(SELECT MAX(計數)FROM東西))作爲[評分] FROM東西

說明: 我相信你想在表格中取所有計數的最大值。爲此,您需要在整個表集上執行子查詢,而不是將其限制爲特定的ID或對其進行分組。當您通過操作ID來執行組時,假設每個Id都是唯一的,它實際上會返回Id,Count/Count。正如你所知的任何非零數字除以它自己是1.

+0

事情是該子請求非常大。我不會簡單地將Id和Count從某個東西中提取出來。有很多中間步驟,需要5或6行,我不想複製/粘貼。 – Arnaud