我正在做一个概念验证。我有一个“ArticleRead”V类,它具有非唯一属性“JournalTitle”(每个日志的大量读取),“Product”V类具有“Subject”的非唯一属性,并且它们之间的边缘带有一个名为“类型”。
ArticleRead为我们系统的用户读取的每篇文章插入了一个顶点。
任何人都可以提供一个近似的SQL来查找特定主题的前50个阅读期刊标题吗?在我们当前的RDBMS中,我们必须找到具有该主题的产品,然后按照这些产品的journalTitle计算所有articleReads,然后获得前50名。它需要几个生命周期。
此外,任何关于修改边缘或任何欢迎的建议(这是我们在极少的自我训练后玩的概念证明)。
答案 0 :(得分:0)
您可以尝试以下操作:
SELECT FROM (
SELECT JournalTitle, count(*) as count FROM (
SELECT expand(out()) FROM Product WHERE Subject = ?
) GROUP BY JournalTitle
) ORDER BY count LIMIT 50
或
SELECT FROM (
SELECT JournalTitle, count(*) as count
FROM ArticleRead
WHERE in()[0].Subject = ?
) ORDER BY count LIMIT 50
仅仅为了记录,对于这样的操作(单级遍历和聚合),图形数据库与关系数据库相比的优势通常不大: