---
title: first_val() | Tiger Data Docs
description: Get the first value from a counter aggregate
---

Since [1.11.0](https://github.com/timescale/timescaledb-toolkit/releases/tag/1.11.0)

Get the value of the first point from a counter aggregate.

## Samples

Get the first and last value of each daily counter aggregate.

```
WITH t as (
  SELECT
      time_bucket('1 day'::interval, ts) as dt,
      counter_agg(ts, val) AS cs -- get a CounterSummary
  FROM table
  GROUP BY time_bucket('1 day'::interval, ts)
)
SELECT
    dt,
    first_val(cs) -- extract the value of the first point in the CounterSummary
    last_val(cs) -- extract the value of the last point in the CounterSummary
FROM t;
```

## Arguments

The syntax is:

```
first_val(
    cs CounterSummary
) RETURNS DOUBLE PRECISION
```

| Name | Type             | Default | Required | Description                                                                                                                      |
| ---- | ---------------- | ------- | -------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `cs` | `CounterSummary` | -       | ✔        | A counter aggregate produced using [`counter_agg`](/docs/reference/toolkit/counters-and-gauges/counter_agg/counter_agg/index.md) |

## Returns

| Column     | Type             | Description                                           |
| ---------- | ---------------- | ----------------------------------------------------- |
| first\_val | DOUBLE PRECISION | The value of the first point in the counter aggregate |
