특정 요리사의 순위를 찾아야하는 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, ranking'. 일할 수있는 아주 좋은 기회가 있습니다. (나는 단순히 PostgreSQL의 레코드 표기법에 대해서 알지 못합니다. 이는 대답이 아닌 주석입니다. –
게시 한 SQL에서 얻은 정확한 오류 메시지도 게시해야합니다. 사람들이 당신을 도울 수있게 해줍니다. –