# `QuackDB.Profile.Query`
[🔗](https://github.com/elixir-vibe/quackdb/blob/main/lib/quack_db/profile.ex#L39)

Query-level metrics of a DuckDB profile. Times are in seconds.

# `t`

```elixir
@type t() :: %QuackDB.Profile.Query{
  cpu_time: number() | nil,
  sql: String.t() | nil,
  total_intermediate_rows: non_neg_integer() | nil,
  total_intermediate_size_bytes: non_neg_integer() | nil,
  total_row_groups_scanned: non_neg_integer() | nil,
  total_row_groups_to_scan: non_neg_integer() | nil,
  total_rows_scanned: non_neg_integer() | nil,
  total_time: number() | nil
}
```

# `decode`

Decodes a JSON string into this struct.

# `decode!`

Decodes a JSON string into this struct, raising on failure.

# `dump`

Dumps this struct into JSON-shaped data, respecting JSON field names.

# `from_map`

Builds this struct from a decoded JSON map.

# `from_map!`

Builds this struct from a decoded JSON map, raising on failure.

# `schema`

Returns a JSON Schema-compatible schema map.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
