---
title: "init(filter:sort:animation:sectionBy:)"
framework: swiftdata
role: symbol
role_heading: Initializer
path: "swiftdata/query/init(filter:sort:animation:sectionby:)-8e78r"
---

# init(filter:sort:animation:sectionBy:)

Creates a sectioned query with sort descriptors, grouped by an optional String key path. Pass nil for the key path to disable sectioning.

## Declaration

```swift
@MainActor @preconcurrency init(filter: Predicate<Element>? = nil, sort descriptors: [SortDescriptor<Element>] = [], animation: Animation, sectionBy sectionKeyPath: KeyPath<Element, String?>? = nil) where Result == [Element]
```

## See Also

### Creating a sorted, sectioned query

- [init(filter:sort:animation:sectionBy:)](swiftdata/query/init(filter:sort:animation:sectionby:)-5wk67.md)
- [init(filter:sort:order:animation:sectionBy:)](swiftdata/query/init(filter:sort:order:animation:sectionby:)-2e9oh.md)
- [init(filter:sort:order:animation:sectionBy:)](swiftdata/query/init(filter:sort:order:animation:sectionby:)-2e9oh.md)
- [init(filter:sort:order:animation:sectionBy:)](swiftdata/query/init(filter:sort:order:animation:sectionby:)-4pdmu.md)
- [init(filter:sort:order:animation:sectionBy:)](swiftdata/query/init(filter:sort:order:animation:sectionby:)-6b4tq.md)
- [init(filter:sort:order:animation:sectionBy:)](swiftdata/query/init(filter:sort:order:animation:sectionby:)-7d51r.md)
- [init(filter:sort:order:transaction:sectionBy:)](swiftdata/query/init(filter:sort:order:transaction:sectionby:)-5ym3e.md)
- [init(filter:sort:order:transaction:sectionBy:)](swiftdata/query/init(filter:sort:order:transaction:sectionby:)-8hx6i.md)
- [init(filter:sort:order:transaction:sectionBy:)](swiftdata/query/init(filter:sort:order:transaction:sectionby:)-930wx.md)
- [init(filter:sort:order:transaction:sectionBy:)](swiftdata/query/init(filter:sort:order:transaction:sectionby:)-l6d4.md)
- [init(filter:sort:transaction:sectionBy:)](swiftdata/query/init(filter:sort:transaction:sectionby:)-2b0zd.md)
- [init(filter:sort:transaction:sectionBy:)](swiftdata/query/init(filter:sort:transaction:sectionby:)-965mg.md)
