Je souhaite effectuer une auto-jointure sur une table pour présenter les valeurs par colonne. Pour chaque objet, il existe plusieurs propriétés (jusqu'à une limite connue), mais toutes les propriétés de tous les objets ne sont pas stockées. J'ai essayé plusieurs jointures mais il manque toujours des lignes et je veux des valeurs nulles.
Tableau de départ :
ID d'objet | Propriétés | Valeur |
---|---|---|
1 | un | 10 |
1 | b | 20 |
1 | c | 30 |
2 | un | 15 |
2 | c | 25 |
Mon objectif (en supposant que je sache que les trois propriétés possibles sont a,b,c
) est
ID d'objet | un | b | c |
---|---|---|---|
1 | 10 | 20 | 30 |
2 | 15 | 25 |
Vous pouvez utiliser la requête suivante pour y parvenir :
Description :
Utilisez la valeur de
CASE
语句,我们选择Attribute
pour une valeur spécifique, c'est-à-dire "a", "b", etc. Ainsi, pour cette colonne particulière, seule la valeur de cet attribut particulier est sélectionnée.Plusieurs valeurs de ligne utilisant
SUM
我们聚合Value
字段的值。这样,任何ObjectID
seront regroupées en une seule ligne.Si vous ne souhaitez pas utiliser
SUM
因为您可能有非数字值,您可以按照 @xQbert 的建议使用MAX
comme ceci :