【问题标题】:Is there any difference between count(*) and count(column) in dolphindb?dolphindb 中的 count(*) 和 count(column) 有什么区别吗?
【发布时间】:2021-05-25 09:46:02
【问题描述】:

dolphindb中的count(*)和count(column)有区别吗?

他们的表现有何不同?

【问题讨论】:

    标签: sql dolphindb


    【解决方案1】:

    虽然这不是重复的,但区别在count(*) versus count(column) in dolphindb中有说明

    count(*) 将计算 ALL 行,但 count(column) 将仅计算在指定的列。

    在性能方面,count(*)应该表现更好,因为它不需要计算每一行的值,但最终SQLcount()函数表达式会执行rowCount() function,而没有提到对count(*) 的特殊处理,或者甚至支持语法。

    在这种情况下,如果您有足够大的表,您应该能够观察到差异并为自己证明这一点。如果您运行两个变体(引用列名版本没有任何空值的唯一列)count(*) 应该更快


    就通用SQL而言Count()there is a good explanation here

    人们认为,在某些较旧的 SQL 数据库中,如果您指定任意值而不是 *(如 Count(1)),则无论是否正确,现代 RDBMS 实现都不会尝试评估所有列不为空,它们会将count(*) 评估为特例,表示“计算所有行数。”

    1* 之间的这种行为在 DolphinDb 中的相关性较低,因为 SQL 命令语法只是内部 rowCount() 函数的包装,该函数将接受一个或多个向量、向量元组、矩阵或表格作为参数。

    【讨论】:

      猜你喜欢
      • 2010-09-08
      • 2021-06-11
      • 2011-02-22
      • 2020-03-02
      • 1970-01-01
      • 2020-11-10
      • 1970-01-01
      • 2014-06-09
      相关资源
      最近更新 更多