Я новичок в Postgres, исходя из MySQL и надеясь, что один из y'all сможет мне помочь.
У меня есть таблица с тремя столбцами: name
, week
и value
. В этой таблице записаны имена, неделя, на которой они записывали высоту, и значение их высоты.
Что-то вроде этого:
Name | Week | Value
------+--------+-------
John | 1 | 9
Cassie| 2 | 5
Luke | 6 | 3
John | 8 | 14
Cassie| 5 | 7
Luke | 9 | 5
John | 2 | 10
Cassie| 4 | 4
Luke | 7 | 4
То, что я хочу, - это список для пользователя значения в минимальную неделю и максимальную неделю. Что-то вроде этого:
Name |minWeek | Value |maxWeek | value
------+--------+-------+--------+-------
John | 1 | 9 | 8 | 14
Cassie| 2 | 5 | 5 | 7
Luke | 6 | 3 | 9 | 5
В Postgres я использую этот запрос:
select name, week, value
from table t
inner join(
select name, min(week) as minweek
from table
group by name)
ss on t.name = ss.name and t.week = ss.minweek
group by t.name
;
Однако я получаю сообщение об ошибке:
столбец "w.week" должен появиться в предложении GROUP BY или использоваться в агрегированной функции
Должность: 20
Это работало отлично для меня в MySQL, поэтому мне интересно, что я здесь делаю неправильно?