原则 DQL - 计算不同的多列



我在计算一些聚合时遇到问题。

部分代码如下所示:

$qb->select($qb->expr()->countDistinct('policy.calculation', 'policy.id'))
    ->getQuery()
    ->getSingleScalarResult();

在 sql 中,可以在多个列上进行不同的计数,从 DQL 中我收到一个错误:

[语法错误] 第 0 行,第 40 行:错误:预期原则\ORM\查询\Lexer::T_CLOSE_PARENTHESIS,得到 ','

我能让这个工作吗?

从表达式生成器:

/**
 * Creates an instance of COUNT(DISTINCT) function, with the given argument.
 *
 * @param mixed $x Argument to be used in COUNT(DISTINCT) function.
 *
 * @return string
 */
public function countDistinct($x)
{
    return 'COUNT(DISTINCT ' . implode(', ', func_get_args()) . ')';
}

看起来这应该有效。

用于将来的情况

以前

public function countDistinct($x)
{
    return 'COUNT(DISTINCT ' . implode(', ', func_get_args()) . ')';
}

public function countDistinct($x)
{
     return 'COUNT(DISTINCT CONCAT(' . implode(', ', func_get_args()) . '))';
}

相关内容

  • 没有找到相关文章

最新更新