我有這個SQL查詢應該找到某個廚師的排名。 我應該計算這個廚師做的食譜的數量,計算其他廚師食譜的數量,最後的目標是得到我們的廚師排名, 這是廚師做的食譜少,然後他做了。 (對不起,對我的英文不好,長時間的解釋)。PostgreSQL錯誤,我想不出
查詢:
/*Compute Cooking Rank*/
create or replace function
ComputeCookingRank(u integer)
returns integer as $$
declare
uidSum record;
uSum integer;
ranking integer;
begin
select distinct uid,count(uid) as "sum" into uidSum from HasCooked group by uid;
---> select distinct into uSum from uidSum where uid=u;
select count(uid) into ranking from uidSum where uid=u and sum<uSum;
end;
$$ language plpgsql;
有問題的線是一個用箭頭;從「記錄」類型 這樣的變量中獲取數據可以嗎? 我在這裏做錯了什麼?
我不認爲這是你得到的錯誤的重要信息,但是當你分組時,你確實不需要DISTINCT。 –
目前還不清楚你的uidSum是什麼記錄。在INTO子句中使用簡單變量'uSum'和'ranking':'INTO uSum,排名'。這很有可能會起作用。 (我根本不知道PostgreSQL中的記錄符號,這是這是一個評論而不是答案的原因之一。) –
您還應該發佈從您發佈的SQL中獲得的確切錯誤消息;它讓人們更容易幫助你。 –