OrientDB query to get sum total from edge property

66 Views Asked by At

I'm new to OrientDB and I need some help in writing a query.

I have following classes in my DB:

  1. Order {orderId:String, ...}
  2. MenuItem {dishName: String, ...}
  3. There's an edge 'has_menu_item' from Order -> has_menu_item -> MenuItem.
  4. Edge 'has_menu_item' has a property 'orderQty'

The help I need is to write a query where the orderQty needs to be aggregated for each day based on some date condition from Order.orderDate

Expected Output:

+--------------+-----------------+--------------------------+
|# |Date       |dishName         |Sum(orderQty)             |
+--------------+-----------------+--------------------------+
|0 |12-05-2020 |Pizza            |9                         |
|1 |12-05-2020 |Burger           |5                         |
|2 |13-05-2020 |Burrito          |20                        |
+--------------+-----------------+--------------------------+

My query:

select orderDate, out('has_menu_item').dishName, out_has_menu_item.orderQty 
    from (SELECT EXPAND(IN('has_menu_item')) FROM MenuItem) 

Actual output

+--------------+-----------------+--------------------------+
|# |Date       |dishName         |Sum(orderQty)             |
+--------------+-----------------+--------------------------+
|0 |12-05-2020 |[Pizza, Burger]  |[5,5]                     |
|1 |12-05-2020 |[Pizza, Burrito] |[4,12]                    |
|2 |13-05-2020 |[Burrito]        |[8]                       |
+--------------+-----------------+--------------------------+

Somehow I'm unable to get desired output. What's the best way to get the result I'm looking for? Thanks in advance.

0

There are 0 best solutions below