我在2.0-M2
上的行为非常奇怪。请考虑以下GratefulDeadConcerts
数据库:
SELECT name, in('written_by') AS wrote FROM V WHERE type='artist'
此查询返回艺术家列表和每个人写的歌曲;大多数行至少有一首歌。
现在尝试:
SELECT name, count(in('written_by')) AS num_wrote FROM V WHERE type='artist'
在我的系统(OSX Yosemite; Orient 2.0-M2)上,我只看到一行:
name num_wrote
---------------------------
Willie_Cobb 224
这似乎不对。但我试着更好地理解。也许count()
导致in()
查看所有write_by边...
SELECT name, in('written_by') FROM V WHERE type='artist' GROUP BY name
生成类似于第一个查询的结果。
现在尝试count()
SELECT name, count(in('written_by')) FROM V WHERE type='artist' GROUP BY name
路径错误 - 请尝试LET
变量......
SELECT name, $wblist, $wbcount FROM V
LET $wblist = in('written_by'),
$wbcount = count($wblist)
WHERE type='artist'
产生看似毫无意义的结果:
您可以看到$wblist
和$wbcount
列彼此不一致,$wbcount
值不会显示任何明显的进展,如累积结果。
请注意,奇怪的行为不仅限于count()
。例如,first()
做同样奇怪的事情。
答案 0 :(得分:1)
count()
仅计算一个值中所有记录的总和。出于您的目的,.size()
似乎是正确的调用方法:
in('written_by').size()