mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-15 19:02:04 +00:00
82 lines
1.8 KiB
Markdown
82 lines
1.8 KiB
Markdown
---
|
|
slug: /en/sql-reference/aggregate-functions/reference/last_value
|
|
sidebar_position: 160
|
|
---
|
|
|
|
# last_value
|
|
|
|
Selects the last encountered value, similar to `anyLast`, but could accept NULL.
|
|
Mostly it should be used with [Window Functions](../../window-functions/index.md).
|
|
Without Window Functions the result will be random if the source stream is not ordered.
|
|
|
|
## examples
|
|
|
|
```sql
|
|
CREATE TABLE test_data
|
|
(
|
|
a Int64,
|
|
b Nullable(Int64)
|
|
)
|
|
ENGINE = Memory;
|
|
|
|
INSERT INTO test_data (a, b) Values (1,null), (2,3), (4, 5), (6,null)
|
|
```
|
|
|
|
### example1
|
|
The NULL value is ignored at default.
|
|
```sql
|
|
select last_value(b) from test_data
|
|
```
|
|
|
|
```text
|
|
┌─last_value_ignore_nulls(b)─┐
|
|
│ 5 │
|
|
└────────────────────────────┘
|
|
```
|
|
|
|
### example2
|
|
The NULL value is ignored.
|
|
```sql
|
|
select last_value(b) ignore nulls from test_data
|
|
```
|
|
|
|
```text
|
|
┌─last_value_ignore_nulls(b)─┐
|
|
│ 5 │
|
|
└────────────────────────────┘
|
|
```
|
|
|
|
### example3
|
|
The NULL value is accepted.
|
|
```sql
|
|
select last_value(b) respect nulls from test_data
|
|
```
|
|
|
|
```text
|
|
┌─last_value_respect_nulls(b)─┐
|
|
│ ᴺᵁᴸᴸ │
|
|
└─────────────────────────────┘
|
|
```
|
|
|
|
### example4
|
|
Stabilized result using the sub-query with `ORDER BY`.
|
|
```sql
|
|
SELECT
|
|
last_value_respect_nulls(b),
|
|
last_value(b)
|
|
FROM
|
|
(
|
|
SELECT *
|
|
FROM test_data
|
|
ORDER BY a ASC
|
|
)
|
|
```
|
|
|
|
```text
|
|
┌─last_value_respect_nulls(b)─┬─last_value(b)─┐
|
|
│ ᴺᵁᴸᴸ │ 5 │
|
|
└─────────────────────────────┴───────────────┘
|
|
```
|
|
|
|
|