Obtenir les valeurs de la première et de la dernière ligne par groupe

Je suis nouveau sur Postgres, venant de MySQL et en espérant que l'un de y'all serait en mesure de m'aider.

J'ai un tableau avec trois colonnes: name, week, et value. Cette table a un dossier contenant les noms, la semaine au cours de laquelle ils ont enregistré la hauteur, et la valeur de leur hauteur.
Quelque chose comme ceci:

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

Ce que je veux, c'est une liste par l'utilisateur de la valeur à la semaine minimum et le maximum de la semaine. Quelque chose comme ceci:

Name  |minWeek | Value |maxWeek | value
------+--------+-------+--------+-------
John  |  1     | 9     | 8      | 14
Cassie|  2     | 5     | 5      | 7
Luke  |  6     | 3     | 9      | 5

Dans Postgres, j'utilise cette requête:

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
;

Cependant, j'ai un message d'erreur:

colonne "w.semaine" doit apparaître dans la clause GROUP BY ou être utilisé dans une fonction d'agrégation
Position: 20

Cela a bien fonctionné pour moi dans MySQL donc je me demande ce que je fais mal?

Alors, comment vous attendez-vous à GROUP BY la deuxième colonne si son résultat n'est connu que APRÈS regroupement?
Cette déclaration, logiquement, n'a aucun sens. Passe de MySql vers Postgresql, vous devrez vous habituer au fait que vous ne pouvez plus faire des choses qui n'ont pas de sens.
"Cela a bien fonctionné pour moi dans MySQL donc je me demande ce que je fais de mal?" - MySQL ne gère pas de regroupement bien et va faire la mauvaise chose, sans avoir à retourner une erreur lors de la Postgres est assez intelligent pour renvoyer une erreur. Il ne fonctionne pas correctement sur MySQL, c'est de faire la mauvaise chose sans une erreur
MySql littéralement tout à fait au hasard des choses à faire si vous lui donner ces sortes de requêtes.
Dans MySQL-je obtenir ERROR 1052 (23000): Column 'name' in field list is ambiguous avec votre requête.

OriginalL'auteur user3915795 | 2014-08-06