如何构建yql为“选择计数(DISTINCT user_id),按性别从音乐组计数(*)”

时间:2018-04-09 08:15:56

标签: vespa

我为

尝试了以下yql语句
select count(DISTINCT user_id), count(*) from music group by gender


/search/?yql=select (…) | all(group(gender) each(output(count())                                                              
                              all(group(user_id) output(count()))));

并收到错误消息: “代码”:5,             “message”:“搜索失败:无法为多个兄弟姐妹使用输出标签'count()'。”,

1 个答案:

答案 0 :(得分:4)

问题是您需要同一级别的两个不同计数(文档和唯一用户)。

这通常可以通过使用“as”的唯一标签来解决,但遗憾的是我们需要为标签分别匹配,而不考虑这种情况。我将为此创建一个GitHub问题。也就是说,你可以通过将它写成两个并行匹配的分组来实现这一点:

all(all(group(gender) each(output(count())) as(documents))
    all(group(gender) each(group(user_id) output(count())) as(users)))