Something like this:

```expression
if(
	array_min(array("a","b","c"))
	<
	array_min(
		array(
			attribute(get_feature_by_id(@layer,$id-1), 'a'),
			attribute(get_feature_by_id(@layer,$id-1), 'b'),
			attribute(get_feature_by_id(@layer,$id-1), 'c')
			)
		)
	,
	array_min(
		array(
			attribute(get_feature_by_id(@layer,$id-1), 'a'),
			attribute(get_feature_by_id(@layer,$id-1), 'b'),
			attribute(get_feature_by_id(@layer,$id-1), 'c')
			)
		)
	,
	array_min(array("a","b","c"))
	)
```

*Note* that depending on your exact requirements you may want to use `get_feature()` instead of `get_feature_by_id()`. In my example no gaps in the id's are allowed.