Skip to main content
Version: v1.18.0

dcount

Aggregate Function

dcount count distinct input values

Synopsis

dcount(<any>) -> uint64

Description

The dcount aggregation function uses hyperloglog to estimate distinct values of the input in a memory efficient manner.

Examples

Count of values in a simple sequence:

echo '1 2 2 3' | zq -z 'dcount(this)' -

=>

3(uint64)

Continuous count of simple sequence:

echo '1 2 2 3' | zq -z 'yield dcount(this)' -

=>

1(uint64)
2(uint64)
2(uint64)
3(uint64)

Mixed types are handled:

echo '1 "foo" 10.0.0.1' | zq -z 'yield dcount(this)' -

=>

1(uint64)
2(uint64)
3(uint64)

The estimated result may become less accurate with more unique input values:

seq 10000 | zq -z 'dcount(this)' -

=>

9987(uint64)

Count of values in buckets grouped by key:

echo '{a:1,k:1} {a:2,k:1} {a:3,k:2}' | zq -z 'dcount(a) by k | sort' -

=>

{k:1,dcount:2(uint64)}
{k:2,dcount:1(uint64)}