# `sample_stddev`

## Description

Returns the sample standard deviation of a numerical expression within a group.

- Designed for use cases where substantial values are missing, such as when data is heavily sampled.

Note

Use `sample_stddev` when working with incomplete datasets (e.g., sampled trace data). For full datasets, prefer `stddev`.

## Syntax

```dataprime
sample_stddev(expression: number): number
```

## Arguments

| Name       | Type   | Required | Description                                                      |
| ---------- | ------ | -------- | ---------------------------------------------------------------- |
| expression | number | **true** | Numerical expression whose sample standard deviation is computed |

## Example

**Use case: Calculate the standard deviation of API latency in trace data**

Traces contain a `duration` field representing execution time. Computing its sample standard deviation helps you understand the variability of API performance even when data is incomplete.

### Example data

```json
{ "operationName": "MalfunctioningDatabase", "duration": 1200 },
{ "operationName": "Scheduled Event", "duration": 32000000 },
{ "operationName": "MalfunctioningDatabase", "duration": 6400 },
{ "operationName": "brokenPrinter", "duration": 10000 },
{ "operationName": "brokenPrinter", "duration": 60000 },
{ "operationName": "ScheduledEvent", "duration": 6000000 },
{ "operationName": "OverloadTable", "duration": 250000 },
{ "operationName": "DownloadInvoiceFunction", "duration": 300000 },
{ "operationName": "MultipleServicesOverload", "duration": 250000 },
{ "operationName": "index.lambda_handler", "duration": 1000000 },
{ "operationName": "DatabaseErrors", "duration": 800 },
{ "operationName": "DatabaseErrors", "duration": 9500 },
{ "operationName": "index.lambda_handler", "duration": 4000000 },
{ "operationName": "HeavyQueries", "duration": 45000 },
{ "operationName": "HeavyQueries", "duration": 120000 },
{ "operationName": "MultipleServicesOverload", "duration": 12000 },
{ "operationName": "DownloadInvoiceFunction", "duration": 90000 },
{ "operationName": "MalfunctioningDatabase", "duration": 8900 },
{ "operationName": "OverloadTable", "duration": 600000 },
{ "operationName": "brokenPrinter", "duration": 120000 }
```

### Example query

```dataprime
groupby $l.operationName aggregate sample_stddev($m.duration)
```

### Example output

| OperationName            | latency_stddev     |
| ------------------------ | ------------------ |
| MalfunctioningDatabase   | 4361.089419616654  |
| brokenPrinter            | 47592.67857298488  |
| Scheduled Event          | 22761288.829728547 |
| MultipleServicesOverload | 83147.67135079544  |
| index.lambda_handler     | 1638633.7355793486 |
| DatabaseErrors           | 4238.272307063378  |
| HeavyQueries             | 59570.23229162531  |
| DownloadInvoiceFunction  | 152958.53824168033 |
| OverloadTable            | 139481.44082183167 |
