2017-07-26 1 views
0

J'ai une table (appelés 'jeux') qui a trois colonnes: météo, les sports et les clientsComment agréger plusieurs lignes avec plusieurs colonnes dans Oracle?

weather sports  customer 
sun  volleyball Randy 
sun  volleyball Lau 
sun  gym   Ryan 
sun  gym   Rachel 

la table à

weather sports  customer 
sun  volleyball Randy, Lau 
sun  gym   Ryan, Rachel 

Je l'ai utilisé suivant la commande LISTAGG mais il me donne l'erreur en disant « pas un groupe par l'expression »

SELECT 
    weather, sports, 
    LISTAGG(customer, ',') WITHIN GROUP (ORDER BY sports) "Customer" 
    FROM games 
    GROUP BY customer; 

Répondre

2

les GROUP BY doit contenir le désagrégée colonnes. Ils définissent chaque ligne dans le jeu de résultats:

SELECT weather, sports, 
     LISTAGG(customer, ',') WITHIN GROUP (ORDER BY sports) as Customers 
FROM games 
GROUP BY weather, sports; 
+0

Merci pour votre travail. –