> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-home-button.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Calcula os valores de `arg` e `val` para o menor valor de `val`. Se houver várias linhas em que `val` seja igual ao mínimo, não é determinístico qual dos `arg` e `val` associados será retornado.

# argAndMin

<div id="argAndMin">
  ## argAndMin
</div>

Introduzido em: v1.1.0

Calcula `arg` e `val` para o menor valor de `val`.
Se houver várias linhas com `val` igual ao mínimo, não é determinístico qual dos `arg` e `val` associados será retornado.
Tanto `arg` quanto `min` se comportam como [funções de agregação](/pt-BR/reference/functions/aggregate-functions); ambos [ignoram `Null`](/pt-BR/reference/functions/aggregate-functions#null-processing) durante o processamento e retornam valores não `Null` se houver valores não `Null` disponíveis.

<Note>
  A única diferença em relação a `argMin` é que `argAndMin` retorna tanto o argumento quanto o valor.
</Note>

**Veja também**

* [argMin](/pt-BR/reference/functions/aggregate-functions/argMin)
* [Tuple](/pt-BR/reference/data-types/tuple)

**Sintaxe**

```sql theme={null}
argAndMin(arg, val)
```

**Argumentos**

* `arg` — Argumento para o qual se deve encontrar o valor mínimo. [`const String`](/pt-BR/reference/data-types/string)
* `val` — O valor mínimo. [`(U)Int8/16/32/64`](/pt-BR/reference/data-types/int-uint) ou [`Float*`](/pt-BR/reference/data-types/float) ou [`Date`](/pt-BR/reference/data-types/date) ou [`DateTime`](/pt-BR/reference/data-types/datetime) ou [`Tuple`](/pt-BR/reference/data-types/tuple)

**Valor retornado**

Retorna uma tupla que contém o valor de `arg` correspondente ao valor mínimo de `val` e o valor mínimo de `val`. [`Tuple`](/pt-BR/reference/data-types/tuple)

**Exemplos**

**Uso básico**

```sql title=Query theme={null}
SELECT argAndMin(user, salary) FROM salary;
```

```response title=Response theme={null}
┌─argAndMin(user, salary)─┐
│ ('worker',1000)         │
└─────────────────────────┘
```

**Exemplo expandido com tratamento de NULL**

```sql title=Query theme={null}
CREATE TABLE test
(
    a Nullable(String),
    b Nullable(Int64)
)
ENGINE = Memory AS
SELECT *
FROM VALUES((NULL, 0), ('a', 1), ('b', 2), ('c', 2), (NULL, NULL), ('d', NULL));

SELECT argMin(a,b), argAndMin(a, b), min(b) FROM test;
```

```response title=Response theme={null}
┌─argMin(a, b)─┬─argAndMin(a, b)─┬─min(b)─┐
│ a            │ ('a',1)         │      0 │
└──────────────┴─────────────────┴────────┘
```

**Uso de Tuple em argumentos**

```sql title=Query theme={null}
SELECT argAndMin(a, (b, a)), min(tuple(b, a)) FROM test;
```

```response title=Response theme={null}
┌─argAndMin(a, (b, a))─┬─min((b, a))─┐
│ ('a',(1,'a'))        │ (0,NULL)    │
└──────────────────────┴─────────────┘
```

**Veja também**

* [argMin](/pt-BR/reference/functions/aggregate-functions/argMin)
* [Tuple](/pt-BR/reference/data-types/tuple)
