在MarkLogic TDE上对SQL分组依据时的奇怪行为

时间:2019-08-19 12:03:42

标签: sql marklogic marklogic-9

当我在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之外,我希望得到与上一个查询类似的结果。

1 个答案:

答案 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