---
title: min_by
description: |
  Returns the value of an expression associated with the minimum value of a given sort key.

  * Both `sortKey` and `expression` must be comparable types (`string`, `bool`, `number`, `interval`, `timestamp`, `regexp`, or `enum`).
  * Useful for retrieving details from the row that has the earliest or smallest value of another field.
url: https://coralogix.com/docs/dataprime/language-reference/functions-reference/aggregation/min_by/
product: dataengine
feature: DataPrime Language
feature_id: dataprime-language
feature_identifier: dataengine/dataprime-language
last_updated: '2026-10-21'
---

# `min_by`

## Description

Returns the value of an expression associated with the minimum value of a given sort key.

* Both `sortKey` and `expression` must be comparable types (`string`, `bool`, `number`, `interval`, `timestamp`, `regexp`, or `enum`).
* Useful for retrieving details from the row that has the earliest or smallest value of another field.

## Syntax

```
min_by(sortKey: T, expression: U): U
```

## Arguments

| Name         | Type | Required | Description                                                                                         |
| ------------ | ---- | -------- | --------------------------------------------------------------------------------------------------- |
| `sortKey`    | `T`  | **true** | Field to minimize. Must be `string`, `bool`, `number`, `interval`, `timestamp`, `regexp`, or `enum` |
| `expression` | `U`  | **true** | Value to return from the row with the minimum `sortKey`. Must be a comparable type                  |

## Example

**Use case: Retrieve details of the earliest event per user**

Suppose you want to know the first activity performed by each user. You can use `min` to compute the earliest timestamp and `min_by` to extract the associated details.

### Example data

```
{ "username": "chris", "path": "/home", "latency": 320, "ts": 1728919749261000000 },

{ "username": "chris", "path": "/checkout", "latency": 5000, "ts": 1728919759261000000 }
```

### Example query

```
groupby username aggregate min(ts) as ts, min_by(ts, path) as path
```

### Example output

| username | path  | ts                  |
| -------- | ----- | ------------------- |
| chris    | /home | 1728919749261000000 |
