2017-06-13 1 views
0

J'ai des transactions ceComment calculer le mode dans ArangoDB?

{"cust_id": "593ec", "recorded": "2015-10-15T11:22:22", "account_id": 1, "account_status": "P"}, 
{"cust_id": "593ec", "recorded": "2016-03-06T02:00:11", "account_id": 2, "account_status": "A"}, ... 

Je veux résumer le nombre de clients uniques et pour chaque client le nombre de comptes uniques que le client a et la valeur de mode pour l'état du compte par des fréquences?

Résultat attendu:

[ 
    {"cust_id": "593ec", "accounts": 11, "status_q1": "A", "status_q2": "N"}, 
    {"cust_id": "114sd", "accounts": 0, "status_q1": "P", "status_q2": "P"}, 
    ..... 
] 

Merci

Répondre

1

Vous pouvez utiliser COLLECT pour regrouper les documents par cust_id.

En supposant que votre collection avec les transactions est nommé transactions,

cette requête:

FOR t IN transactions 
    COLLECT c = t.cust_id INTO status = t.account_status 
    RETURN {cust_id: c, accounts : LENGTH(status), status} 

vous donne le résultat suivant:

[ 
    {"cust_id": "593ec", "accounts": 2, "status": ["P","A"]}, 
    ... 
]