我在下面编写了命令,列出了在不同电影中一起表演过的演员对,并列出了一起表演的次数。
match (person1)-[:ACTED_IN]->(Movie)<-[:ACTED_IN]-(person2)
return DISTINCT Movie.title, person1.name, person2.name, count(Movie) AS pairs
ORDER BY pairs DESC
我认为这是不准确的,因为它计算重复实例,即-x
和y
被算作一个实例,而y
和x
被算作一个实例。单独的实例。有谁知道如何解决这一问题?
任何帮助将不胜感激。
答案 0 :(得分:0)
是的,您可以为此添加一些逻辑,例如:
var salt = CryptoJS.enc.Utf8.parse(this.tokenFromUI);
var hasher = CryptoJS.algo.SHA1;
var key32Byte = CryptoJS.PBKDF2(this.tokenFromUI, salt, {
keySize: 256 / 32,
iterations: 1000,
hasher: hasher
});
console.log("key32Byte", this.wordToByteArray(key32Byte.words));
答案 1 :(得分:0)
要正确地观看每对演员出现的电影(以共享电影的降序排列),这应该起作用:
MATCH (p1:Person)-[:ACTED_IN]->(m)<-[:ACTED_IN]-(p2:Person)
RETURN p1.name, p2.name, COLLECT(m) AS movies, COUNT(m) AS pairs
ORDER BY pairs DESC
此查询考虑到aggregating functions(例如COUNT
和COLLECT
)在同一WITH
或RETURN
中使用非聚合元素的事实子句称为“分组键”。另外,DISTINCT
也不需要,因为聚合函数隐式返回不同的行(如果有任何分组键)。