【发布时间】:2021-06-21 08:48:01
【问题描述】:
我在 OrientDB 中有以下 sql 查询来查找社交网络中最活跃的客户的姓名:
SELECT name
FROM Customer
Where id in (Select id, count(id) as cnt
from (Select IN('PersonHasPost').id[0] as id
From Post
Where creationDate>= date( '2012-10-01', 'yyyy-MM-dd')
)
Group by id
Order by cnt DESC
limit 10
)
GROUP BY id;
但是,此查询不返回任何结果。 当我单独运行子查询时,它确实给了我 10 个最活跃客户的 ID,以及帖子的数量,这让我觉得 in 运算符有问题。 我在这里做错了什么? 我在 OrientDB 3.0.5 上运行此查询。
【问题讨论】:
-
查询无效,应引发错误。错误处理能力差?
-
Where id in (Select id, count(id) as cnt正在尝试将 1 个值与 2 个值进行比较。无效的。删除 count()。 -
这与错误处理无关,语法正确,比较结果为假,所以什么都不返回是正常的
标签: sql database select orientdb multi-model-database