Code Duplication    Length = 10-10 lines in 3 locations

source/Spiral/Database/Builders/Prototypes/AbstractSelect.php 3 locations

@@ 170-179 (lines=10) @@
167
     *
168
     * @throws BuilderException
169
     */
170
    public function having(
171
        $identifier,
172
        $variousA = null,
173
        $variousB = null,
174
        $variousC = null
175
    ): AbstractSelect {
176
        $this->whereToken('AND', func_get_args(), $this->havingTokens, $this->havingWrapper());
177
178
        return $this;
179
    }
180
181
    /**
182
     * Simple AND HAVING condition with various set of arguments.
@@ 195-204 (lines=10) @@
192
     *
193
     * @throws BuilderException
194
     */
195
    public function andHaving(
196
        $identifier,
197
        $variousA = null,
198
        $variousB = null,
199
        $variousC = null
200
    ): AbstractSelect {
201
        $this->whereToken('AND', func_get_args(), $this->havingTokens, $this->havingWrapper());
202
203
        return $this;
204
    }
205
206
    /**
207
     * Simple OR HAVING condition with various set of arguments.
@@ 220-229 (lines=10) @@
217
     *
218
     * @throws BuilderException
219
     */
220
    public function orHaving(
221
        $identifier,
222
        $variousA = [],
223
        $variousB = null,
224
        $variousC = null
225
    ): AbstractSelect {
226
        $this->whereToken('OR', func_get_args(), $this->havingTokens, $this->havingWrapper());
227
228
        return $this;
229
    }
230
231
    /**
232
     * Sort result by column/expression. You can apply multiple sortings to query via calling method