# MIN

> Aggregatfunktion MIN in StackQL: der kleinste Wert in einer Spalte oder Spaltengruppierung.

Source: https://stackql.io/de/language-spec/functions/aggregate/min

Gibt den Minimalwert auf Basis einer Eingabespalte oder Spaltengruppierung zurück.  

Siehe auch:  
[[` SELECT `]](/language-spec/select) 

* * * 

## Syntax

```sql
/* aggregate function */
SELECT MIN(columnExpression) FROM <multipartIdentifier>
[ GROUP BY groupByColumn ];
```
```sql
/* scalar (multi-argument) function */
SELECT MIN(scalarExpression1, scalarExpressionN, ...) FROM <multipartIdentifier>;
```

## Argumente

### Aggregatfunktion

__*columnExpression*__  
Eine Spalte oder ein Ausdruck, einschließlich Operanden (`+`, `-`, ...).

> Die Funktion `MIN` gibt den kleinsten Wert für die angegebene Spalte auf Basis des Datentyps der Spalte zurück. Eine `MIN`-Operation auf einer Ganzzahlspalte gibt zum Beispiel die kleinste Ganzzahl für diese Spalte oder Spaltengruppierung zurück, während eine `MIN`-Operation auf einer Zeichenfolgenspalte oder -spaltengruppierung den kleinsten ASCII-Wert zurückgibt (in der Regel der erste Wert bei umgekehrter lexikografischer Sortierung, mit einigen Abweichungen).

__*groupByColumn*__  
Eine oder mehrere Spalten, über die Zusammenfassungs- oder Aggregatoperationen ausgeführt werden.  Die `GROUP BY`-Klausel gibt für jede Spaltengruppierung eine Zeile zurück.

> Die Funktion `MIN` ignoriert `NULL`-Werte.

> Die Funktion `MIN` gibt `NULL` zurück, wenn alle Werte in der Gruppe `NULL` sind.

### Skalarfunktion

__*scalarExpression*__  
Eine Liste von Spalten oder Ausdrücken (2 oder mehr), aus denen der kleinste Wert ermittelt und zurückgegeben wird. 

> Die skalare Funktion `MIN` gibt `NULL` zurück, wenn eines der Argumente `NULL` ist. 

> Die skalare `MIN`-Funktion (mit mehreren Argumenten) durchsucht ihre Argumente von links nach rechts nach einem Argument, das eine Kollationsfunktion definiert, und verwendet diese Kollationsfunktion für alle Zeichenfolgenvergleiche. 

> Wenn keines der Argumente der skalaren `MIN`-Funktion eine Kollationsfunktion definiert, wird die Kollationsfunktion `BINARY` verwendet. 

> Wird nur ein Argument angegeben, wird die Aggregatfunktion `MIN` aufgerufen.

## Rückgabewert(e)

Gibt den Minimalwert auf Basis des Eingabedatentyps (oder der Gruppierung) zurück.

* * *

## Beispiele

### Den Minimalwert einer Spalte zurückgeben

```sql
SELECT name, location, min(timeCreated) 
FROM google.storage.buckets WHERE project = 'stackql';
```

### Den Minimalwert für jeden Wert in einer Spalte zurückgeben

```sql
SELECT name, location,
min(round(julianday('now')-julianday(timeCreated))) as age
FROM google.storage.buckets WHERE project = 'stackql'
GROUP BY location;
```

### Den Minimalwert aus einer Liste von Werten mit der skalaren Funktion `min` zurückgeben

```sql
SELECT min(json_extract(disks, '$[0].diskSizeGb'),json_extract(disks, '$[1].diskSizeGb')) as smallest_disk
FROM google.compute.instances 
WHERE project = 'stackql-demo' 
AND zone = 'australia-southeast1-a';
```

### `MIN` als Fensterfunktion verwenden, um Minimalwerte innerhalb von Partitionen zu ermitteln

```sql
-- Find the earliest issue in each state
SELECT
    number,
    title,
    state,
    created_at,
    MIN(created_at) OVER (PARTITION BY state) as earliest_in_state
FROM github.issues.issues
WHERE owner = 'stackql'
  AND repo = 'stackql'
ORDER BY state, created_at;
```

Weitere Informationen finden Sie unter [https://www.sqlite.org/lang_aggfunc.html#min_agg](https://www.sqlite.org/lang_aggfunc.html#min_agg) oder [https://www.sqlite.org/lang_corefunc.html#min_scalar](https://www.sqlite.org/lang_corefunc.html#min_scalar)
