我試圖在用戶可定義的範圍內分攤利率。來自用戶的輸入是一組關於桶的簡單指令,但我無法獲得SQL權限。MYSQL Bucketing問題與我的查詢
這裏就是我有
SELECT r.*,CASE
WHEN rate_amt < 0.25 THEN (rate_amt + 0.5) as rate_amt
WHEN (rate_amt >= 0.25 AND rate_amt < 0.5) THEN (rate_amt + 0.25) as rate_amt
WHEN (rate_amt >=0.5 AND rate_amt < 0.75) THEN (rate_amt + 0.01) as rate_amt
WHEN ELSE THEN (rate_amt) as rate_amt FROM (sc_module_rates r)
運行該SQL產生錯誤
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'as rate_amt
WHEN (rate_amt >= 0.25 AND rate_amt < 0.5) THEN (0.25) as rate_amt
W' at line 2
表看起來是這樣的:
+-------------------+
| rate | rate_amt |
---------------------
| fiji | 0.04 |
| somoa | 0.76 |
| japan | 0.51 |
| china | 0.25 |
我需要輸出基本上添加用戶可以確定這些比率的差值(一個數字,如查詢所示)
誰能告訴我我做錯了什麼? 我試着改變WHEN子句幾次,例如:
AND(rate_amt >=0.5 , rate_amt < 0.75)
(rate_amt >=0.5 <0.75)
(rate_amt BETWEEN 0.5 and 0.75)
所有沒有成功,同樣的錯誤消息。