Ich möchte einen Self-Join für eine Tabelle durchführen, um die Werte spaltenweise darzustellen. Für jedes Objekt gibt es mehrere Eigenschaften (bis zu einem bekannten Grenzwert), es werden jedoch nicht alle Eigenschaften für alle Objekte gespeichert. Ich habe verschiedene Verknüpfungen ausprobiert, aber es fehlen immer Zeilen und ich möchte Nullwerte.
Starttisch:
Objekt-ID | Eigenschaften | Wert |
---|---|---|
1 | eins | 10 |
1 | b | 20 |
1 | c | 30 |
2 | eins | 15 |
2 | c | 25 |
Mein Ziel (vorausgesetzt, ich weiß, dass die drei möglichen Eigenschaften a,b,c
sind) ist
Objekt-ID | eins | b | c |
---|---|---|---|
1 | 10 | 20 | 30 |
2 | 15 | 25 |
您可以使用以下查询来实现它:
说明:
使用
CASE
语句,我们选择Attribute
的值作为特定值,即“a”、“b”等。因此,对于该特定列,仅选择该特定属性的值。使用
SUM
我们聚合Value
字段的值。这样,任何ObjectID
的多行值都会聚合到一行中。如果您不愿意使用
SUM
因为您可能有非数字值,您可以按照 @xQbert 的建议使用MAX
,如下所示: