1
我正在尋找解決方案,但找不到答案。是否有可能在mySQL中創建過程或函數,將聚合函數作爲參數? 例如,如果我調用函數'myFunction(SUM)',它將使用SUM作爲聚合函數,如果我調用myFuction(MAX)它將使用MAX。作爲mySQL中的參數的聚合函數
我正在尋找解決方案,但找不到答案。是否有可能在mySQL中創建過程或函數,將聚合函數作爲參數? 例如,如果我調用函數'myFunction(SUM)',它將使用SUM作爲聚合函數,如果我調用myFuction(MAX)它將使用MAX。作爲mySQL中的參數的聚合函數
您只能使用動態SQL執行此操作 - 即使用prepare
和exec
語句。
如果你想這樣做在線,你可能想是這樣的:
select (case when myfunction = 'SUM' then sum(x)
when myfunction = 'MAX' then max(x)
. . .
end) as custom_agg
我還應該注意的是,你不能在作爲參數傳遞一個函數名稱。
非常感謝,現在一切都清楚了 – ju5tlazy