Code Duplication    Length = 10-10 lines in 3 locations

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

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