2017-03-01 128 views
0

我正在尝试编写一个查询,该查询会为每个类别带来N条记录。从DocDB的每个类别中选择随机N条记录

可以说,文件有这样的结构:

  • 标识 - 唯一ID
  • 类别 - 字符串
  • 类型 - 字符串

现在,我使用这个查询:

select top 20 * from c where c.category in ('category1','cateogory2') where type='type1'

我希望能够从每个类别中获取10条满足where条款的记录。

**我使用pydocumentdb

回答

1

根据我的理解,似乎是为您的需要一个简单的查询就像如下。

select top 10 * from c where c.category = 'category1' and type='type1' 
union 
select top 10 * from c where c.category = 'category2' and type='type1' 

但是现在,Azure的DocumentDb不支持union操作。

所以根据我的经验,可能的方法是创建一个存储过程来实现union操作两个不同参数值的查询收集结果集,然后通过pydocumentdb调用存储过程。请参阅官方教程DocumentDB server-side programming: Stored procedures, database triggers, and UDFs来了解更多细节。

相关问题