Skip to main content
Skip to main content

sumKahan

Calculates the sum of the numbers with Kahan compensated summation algorithm Slower than sum function. The compensation works only for Float types.

Syntax

sumKahan(x)

Arguments

Returned value

Example

Query:

SELECT sum(0.1), sumKahan(0.1) FROM numbers(10);

Result:

┌───────────sum(0.1)─┬─sumKahan(0.1)─┐
│ 0.9999999999999999 │             1 │
└────────────────────┴───────────────┘

sumKahan

Introduced in: v1.1

Calculates the sum of the numbers with Kahan compensated summation algorithm. Slower than sum function. The compensation works only for Float types.

Syntax

sumKahan(x)

Arguments

Returned value

Returns the sum of numbers. (U)Int* or Float* or Decimal

Examples

Demonstrating precision improvement with Kahan summation

SELECT sum(0.1), sumKahan(0.1) FROM numbers(10);
┌───────────sum(0.1)─┬─sumKahan(0.1)─┐
│ 0.9999999999999999 │             1 │
└────────────────────┴───────────────┘