2
Gibt es eine Möglichkeit, einen Zeichenfolgenwert zu aggregieren, wenn dieser eindeutig ist, oder andernfalls NULL zurückzugeben.So aggregieren Sie entweder den eindeutigen Zeichenfolgenwert oder NULL
Col_A | Col_B | Col_C | Col_D
1 | Foo | Bar | 6
2 | Foo | NoBar | 0
2 | Foo | Foo | 4
1 | Foo | Bar | 6
Damit diese SQL
SELECT SUM(COL_A), STR_AGG_FUNC(COL_B), STR_AGG_FUNC(COL_C),SUM(COL_D) FROM STUFF
Würde wieder: Zum Beispiel die Tabelle "STUFF" gegeben
Col_A | Col_B | Col_C | Col_D
6 | Foo | NULL | 16
Gibt es eine Leistungseinbuße für diesen Ansatz wegen der inhärenten Typkonvertierung? In der Produktion ist mein Tisch ziemlich groß. – mjenkins
Es gibt hier keine echte inhärente Typumwandlung. Es verwendet nur die Groß-/Kleinschreibung der Reihenfolge der Spalte, um die erste/letzte zurückzugeben. Es ist die gleiche Reihenfolge nach Ordnungen einer Varchar-Spalte. 'b' kommen vor' A' einfach basierend auf ihren Unicode-Werten (oder ähnlich der ASCII-Dezimal oder Hex- oder Oct-Reihenfolge). Aggregatfunktionen können jedoch generell besteuert werden. Indizes spielen offensichtlich einen Faktor in max/min. – scsimon