В postgres я сделал эту функцию, и при ее вызове она печатает значение count, а не значение c.first_name, которое я передал в переменную. Я не знаю, правильно ли это делать. Как я могу это исправить?
declare
mostExperienced text;
BEGIN
SELECT COUNT(*) AS count, c.first_name INTO mostExperienced
FROM crew_members c
INNER JOIN aircrafts_members am ON am.crew_id = c.id
GROUP BY am.crew_id, c.first_name ORDER BY count DESC LIMIT 1;
RETURN mostExperienced;
END;





В этом SELECT ... INTO есть две переменные, поэтому запись, вероятно, будет лучшим выбором.
declare
mostExperienced RECORD;
BEGIN
SELECT COUNT(*) AS count, c.first_name
INTO mostExperienced
FROM crew_members c
INNER JOIN aircrafts_members am ON am.crew_id = c.id
GROUP BY am.crew_id, c.first_name ORDER BY count DESC
LIMIT 1;
RETURN mostExperienced.first_name;
END;
Или просто поменяйте местами столбцы в списке
select. Или, лучше, переместитеcount(*)прямо в пунктorder by.