neo4j - 查询的目的是什么:对相同类型的不同节点的特定属性求和
问题描述
我对 cypher 和 Neo4j 很陌生,我正在尝试运行一个特定的查询,但我不确定如何使用 cypher 来表达它。
我正在使用销售报告数据集,其中一种节点类型是实际销售的产品。该产品有 3 个属性:名称、ID、利润。因此,节点通过它们的 ID 而不是它们的名称来唯一标识。因此,例如,我有在法国以 X 利润出售的香蕉和在西班牙以 Y 利润出售的香蕉。这是两个不同的节点,将它们分开的是它们的 ID。
这是用于创建图形的密码查询,因此您可以更好地掌握它:
LOAD CSV WITH HEADERS FROM 'file:///SalesRecords.csv' AS row
MERGE (r:Region {Name: row.Region})
MERGE (c:Country {Name: row.Country})
MERGE (p:Product {Name: row.ItemType, ID: row.OrderID, Profit:
row.TotalProfit})
MERGE (s:Channel {Name: row.SalesChannel})
MERGE (c)-[:BELONGS_TO]->(r)
MERGE (p)-[:SOLD_IN]->(c)
MERGE (p)-[:SOLD_THROUGH]->(s)
所以,我想做的是:我想按名称列出所有不同的产品,并总结它们的利润。所以我想要的最终结果将是一个包含两列的表格,productName 和 totalProfit,其中一行中,例如,productName 是 Bananas,totalProfit 是 X+Y。
编辑:哦,我想按总利润订购
如果我的问题不够清楚,请直说。
提前致谢!
解决方案
您可以使用sum function
来获取一组数值的总和。
这里的分组键是节点的Name
属性。Product
MATCH (p:Product)
RETURN p.Name as productName, sum(p.Profit) as totalProfit
ORDER BY totalProfit DESC
推荐阅读
- javascript - 显示的日期不正确
- sass - 尝试编译 SASS 代码时出错
- python - python pandas groupby排序排名/前n
- powershell - 定义要在批处理脚本中使用的变量
- python - Python Web Scraping - 在 Span 标签之间获取文本
- apache-kafka - Kafka 分区中消息分布不均
- python - Openpyxl:如果当前工作表值与值不匹配,则将列表编号添加到“删除列表”列表中
- c++ - 按姓氏和三个相同的姓氏组织名称(C++)?
- clang - Clang OpenMP 中的内存映射卸载到 GPU
- javascript - Javascript 在 Chrome 中的页面之前加载