当我在Marklogic 9.0.5中定义的TDE上运行以下SQL查询时,即使TDE充满了数据并且我要查询的特定行(数字)对于任何行都不为空,但没有任何结果
SELECT number, count(*) FROM object
GROUP BY number
[["number","count(*)"],[null,0]]
当我对id运行“分组依据”查询时,会得到结果:
SELECT id, count(*) FROM object
GROUP BY id
[["id","count(*)"],["00e0172adcd406240eebe0d673eeac0b",1],["0276e6d7093440e0998ae9eca13e1d55",1, etc.]
此外,当我在原始查询中将id包含为虚拟字段时,也会得到预期的结果:
SELECT number, count(*), id FROM object
GROUP BY number
["number","count(*)","id"],["1215837",29,"071b9a599acff0dd7479734e8eb0de31"],["1230182",28,"00e0172adcd406240eebe0d673eeac0b"],["945146",29,"ebfe1da3847d5b0ac14d479436d03e86"]]
为什么第一个查询没有结果?除了没有ID之外,我希望得到与上一个查询类似的结果。
答案 0 :(得分:0)
我看了一下marklogic的文档。
我看到它不是100%的SQL有理数据库,但更有趣的是,他们使用count()
的示例始终显示count(1)
。
请参阅:https://www.marklogic.com/blog/sql-group-by/
示例:
在RDBMS中获取基本的性别计数,例如“男性:22岁,女性:31岁” 做到这一点:
select gender, count(1) from person group by gender
这是一个很长的节目,请尝试一下:
SELECT number, count(1) FROM object
GROUP BY number