ClickHouse/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md

100 lines
1.8 KiB
Markdown
Raw Normal View History

---
toc_priority: 107
---
# avgWeighted {#avgweighted}
Calculates the [weighted arithmetic mean](https://en.wikipedia.org/wiki/Weighted_arithmetic_mean).
**Syntax**
``` sql
avgWeighted(x, weight)
```
**Arguments**
2020-10-19 15:23:35 +00:00
- `x` — Values.
- `weight` — Weights of the values.
2020-10-19 15:23:35 +00:00
`x` and `weight` must both be
[Integer](../../../sql-reference/data-types/int-uint.md),
2021-07-29 15:20:55 +00:00
[floating-point](../../../sql-reference/data-types/float.md), or
2020-10-19 15:23:35 +00:00
[Decimal](../../../sql-reference/data-types/decimal.md),
but may have different types.
**Returned value**
2020-10-30 16:17:57 +00:00
- `NaN` if all the weights are equal to 0 or the supplied weights parameter is empty.
2020-10-19 15:23:35 +00:00
- Weighted mean otherwise.
**Return type** is always [Float64](../../../sql-reference/data-types/float.md).
**Example**
Query:
``` sql
SELECT avgWeighted(x, w)
FROM values('x Int8, w Int8', (4, 1), (1, 0), (10, 2))
```
Result:
``` text
┌─avgWeighted(x, weight)─┐
│ 8 │
└────────────────────────┘
```
2020-10-15 10:36:00 +00:00
**Example**
Query:
``` sql
SELECT avgWeighted(x, w)
FROM values('x Int8, w Float64', (4, 1), (1, 0), (10, 2))
```
Result:
``` text
┌─avgWeighted(x, weight)─┐
│ 8 │
└────────────────────────┘
```
2020-10-30 16:17:57 +00:00
**Example**
Query:
``` sql
SELECT avgWeighted(x, w)
FROM values('x Int8, w Int8', (0, 0), (1, 0), (10, 0))
```
Result:
``` text
┌─avgWeighted(x, weight)─┐
│ nan │
└────────────────────────┘
```
**Example**
Query:
``` sql
CREATE table test (t UInt8) ENGINE = Memory;
SELECT avgWeighted(t) FROM test
```
Result:
``` text
┌─avgWeighted(x, weight)─┐
│ nan │
└────────────────────────┘
```