首页 > 解决方案 > OrientDB 查询以从边缘属性中获取总和

问题描述

我是 OrientDB 的新手,在编写查询时需要一些帮助。

我的数据库中有以下课程:

  1. 订单 {orderId:String, ...}
  2. MenuItem {菜名:字符串,...}
  3. Order -> has_menu_item -> MenuItem 有一条边“has_menu_item”。
  4. 边缘“has_menu_item”有一个属性“orderQty”

我需要的帮助是编写一个查询,其中需要根据 Order.orderDate 中的某些日期条件为每天聚合 orderQty

预期输出:

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

我的查询:

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

实际输出

+--------------+-----------------+--------------------------+
|# |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]                       |
+--------------+-----------------+--------------------------+

不知何故,我无法获得所需的输出。获得我想要的结果的最佳方法是什么?提前致谢。

标签: sqlorientdb3.0

解决方案


推荐阅读