我試圖做一些事情,聽起來很簡單,但我一直轉圈圈一點與它行..子選擇具有最大列
我有一個目前是需要一個存儲過程只缺一個功能位,爲一corrosponding最大計算返回名稱...
所以我回到
平均計算& 最大的計算,但要「從另一列名」的最大回報值。
這裏是我的SP的例子,道歉,這似乎不是很自然的,因爲我不得不重新命名,而忽略不相關的位,這樣可能會顯得有些做作::
SELECT
IFNULL(ROUND(AVG(TABLE1.TotalCapacityPercentageUsage/TABLE1.TotalSnapshotsForTimeSegment), 2), 0.0) AS TotalAvgCapacityPercentageUsage,
IFNULL(ROUND(MAX(TABLE1.MaxCapacityPercentageUsage), 2), 0.0) AS TotalMaxCapacityPercentageUsage,
-- TODO return the QueuesTmp.QueueName for max calculation (This could be more than one row, so I was going to use something like the following:
-- (SELECT GROUP_CONCAT(QueuesTmp.QueueName SEPARATOR ' ') to ensure only one field is returned..
FROM TABLE1
INNER JOIN QueuesTmp ON QueuesTmp.QueueID = TABLE1.QueueID
RIGHT JOIN TimesTmp ON TABLE1.TimeSegment = TimesTmp.QuarterHour AND
TABLE1.Date = DATE(TimesTmp.StartOfRangeUTC)
GROUP BY TimesTmp.QuarterHour;
我開始做一個子選擇,但它似乎我將不得不重複所有的聯接,在哪裏和分組依據(似乎這是不可能的,因爲這就是爲什麼)..
任何人都可以指引我在正確的方向作爲如何實現這一目標?
在此先感謝。
工作液
GROUP_CONCAT(DISTINCT QueuesTmp.QueueName ORDER BY MYCOLUMN DESC 分離器 ':')AS MaxColumnQueueName,
您好,非常感謝您的回覆。我認爲這似乎很好。我不得不做一個小的改動,因爲它在語法上不是很正確,我也想返回所有匹配最大計算的隊列名稱,但似乎效果很好。我會發布我的工作示例作爲編輯我的問題..我可以請只是確認一些東西,但你。我只是在我的專欄中訂購的不是ORDER BY MAX(COLUMN)是否正確?此外,select還受到原始查詢正在執行的組的限制嗎?如果不是,看起來很奇怪。 – Yos
沒問題,你可以按你想要的順序排列。我的例子是基於給定查詢中的評論。 感謝我的例子的語法提示,我糾正它。 – lopo
嗨,對不起,我知道我已經接受了你的答案,但它沒有得到我所需要的。這是正確的方向。所以,現在按照它的最大值,它返回一個字符串,其隊列名稱按desc順序排列,非常棒!不過,我希望它只返回隊列(可能有多個),其最大值等於最大值。所以它幾乎就像我需要在我的group_concat中做一個WHERE只會返回我隊列中的最大值等於最大值的計算,例如WHC MaxColumn = MAX(MaxColumn)..我不能看到如何做到這一點,任何ideas.T – Yos