如何使用Memgraph统计不同元素?是否支持COUNT(DISTINCT x)?
Memgraph对COUNT(DISTINCT x)的支持及替代方案
Memgraph原生支持Cypher标准中的COUNT(DISTINCT x)语法,可直接用于统计指定属性或表达式的唯一元素数量,无需额外复杂实现。
基础使用示例
统计所有User节点中不同城市的数量:
MATCH (u:User) RETURN COUNT(DISTINCT u.city) AS distinct_city_count;
统计所有关系的不同类型数量:
MATCH ()-[r]->() RETURN COUNT(DISTINCT type(r)) AS distinct_rel_types;
兼容旧版本的替代方案
如果使用的是非常早期的Memgraph版本(现已极少使用),该语法未被支持时,可以通过先去重再计数的方式达到相同效果:
MATCH (u:User) WITH DISTINCT u.city AS unique_city RETURN COUNT(unique_city) AS distinct_city_count;
此方法先通过DISTINCT筛选出所有唯一的目标值,再对筛选后的结果集进行计数,最终结果和COUNT(DISTINCT)完全一致。
内容的提问来源于stack exchange,提问作者KWriter
相关产品推荐
相关产品推荐

