我有一個帶有category_id,start_range,end_range和percentile列的category_model表。錯誤代碼:1111.在IF條件下嘗試使用Max函數時,組函數無效使用
category_id
類型varchar
例如, C1,C2,C3 start_range
和end_range
是float
值,例如, -0.25到4.65
我想檢查落在一定範圍內的分數並返回相應的百分位數。
下面的查詢將返回錯誤代碼1111-無效使用組功能 -
SELECT max(IF(spm.start_range <= 1.19 AND spm.end_range >= 1.19, spm.percentile, IF(max(spm.end_range) < 1.19, 99, 0))) AS percentile
FROM category_model spm
WHERE spm.category_id = 'C1'
如果我用下面的查詢替換它,它工作正常,但我無法檢查的邊界條件(例如,分數超出min start_range或max end_range)。
SELECT max(IF(spm.start_range <= 1.19 AND spm.end_range >= 1.19, spm.percentile, 0)) AS percentile
FROM category_model spm
WHERE spm.category_id='C1'
有沒有辦法解決這個問題?我正在使用MySql 5.2版
您能向我們展示樣本數據以及您的查詢邏輯嗎? –
對MAX()進行第二次嵌套調用的條件是什麼? –
我已經爲該問題添加了更多信息。 – sravtej