count(1)和 count(*) 的结果不一样

请问一下,DolphinDB的sql查询是不是标准sql有些区别?如下图所示,
count(1)和 count(*) 的结果不一样。
image.png

阅读 2.9k
1 个回答

count(*)返回的是所有数据的行数,count(1)返回的是分区数。这个分区数是已写入实际数据的分区数,而不是所有已建立的分区数。比如下列代码我建库时创建了30个按天值分区,然后往2017.08.07和2017.08.08这2个分区写入了1000条数据:

n=1000
dates=2017.08.07..2017.08.08
date=rand(dates, n)
x=rand(10.0, n)
t=table(date, x)
db = database("dfs://testdb", VALUE, 2017.08.01..2017.08.30)
pt = db.createPartitionedTable(t, `pt, `date) 

pt.append!(t)

然后查询:

select count(x) from pt;//1000 
select count(1) from pt//2

第一个查询返回记录数1000,第二个查询返回已有实际数据的分区数2。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题