You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: group_by_having.rs
    path of file: ./repos/prisma-engines/query-engine/connector-test-kit-rs/query-engine-tests/tests/queries/aggregation
    
    the code of the file until where you have to start completion: use query_engine_tests::*;

// Testing assumptions
// - Grouping on fields itself works (as tested in the group_by.rs spec).
// - The above means we also don't need to test combinations except for what is required by the rules to make it work.
    
    async fn having_avg_scalar_filter(runner: Runner) -> TestResult<()> {
        create_row(&runner, r#"{ id: 1, decimal: "10", string: "group1" }"#).await?;
        create_row(&runner, r#"{ id: 2, decimal: "6", string: "group1" }"#).await?;
        create_row(&runner, r#"{ id: 3, decimal: "5", string: "group2" }"#).await?;
        create_row(&runner, r#"{ id: 4, string: "group2" }"#).await?;
        create_row(&runner, r#"{ id: 5, string: "group3" }"#).await?;
        create_row(&runner, r#"{ id: 6, string: "group3" }"#).await?;

        // Group 1 has 8, 2 has 5, 3 has 0
        insta::assert_snapshot!(
            run_query!(
                runner,
                r#"query { groupByTestModel(by: [string], orderBy: { string: asc }, having: {
                    decimal: {
                      _avg: {
                        equals: "8.0"
                      }
                    }
                  }) {
                    string
                    _avg {
                      decimal
                    }
                  }
                }"#
            ),
            @r###"{"data":{"groupByTestModel":[{"string":"group1","_avg":{"decimal":"8"}}]}}"###
        );

        Ok(())
    }