当前位置: 首页 > 知识库问答 >
问题:

Laravel雄辩-不同的()和计数()不能正常工作在一起

冯茂实
2023-03-14

因此,我试图获取查询中不同PID的数量,但返回的值是错误的。

这就是我试图做的:

$ad->getcodes()->groupby('pid')->distinct()->count()

返回值“2”的,而它应该返回的值应该是“1”。

作为解决办法,我正在这样做:

count($ad->getcodes()->groupby('pid')->distinct()->get())

什么工作正常并返回“1”

是否有任何规则规定count和distinct不能位于同一查询上?我发现解决方案有点“沉重”,我想让原始查询工作起来:(

共有3个答案

景哲
2023-03-14

其他人看到这篇文章,却找不到其他有用的建议吗?

根据具体的查询,可能需要不同的方法。在我的例子中,我需要按计算分组的结果,例如。

SELECT COUNT(*) FROM (SELECT * FROM a GROUP BY b)

或者使用计数(不同的b)

SELECT COUNT(DISTINCT b) FROM a

经过一番困惑,我意识到这两者都没有内置的Laravel函数。所以最简单的解决方案是使用DB::ravecount方法。

$count = $builder->count(DB::raw('DISTINCT b'));

记住,在调用count之前不要使用groupBy。如果需要获取行,可以稍后应用groupBy

江建明
2023-03-14

一个更一般的答案可以节省我的时间,希望其他人:

不工作(返回所有行的计数):

DB::table('users')
            ->select('first_name')
            ->distinct()
            ->count();

修复方法:

DB::table('users')
            ->distinct()
            ->count('first_name');
彭存
2023-03-14

以下几点应该有效

$ad->getcodes()->distinct()->count('pid');
 类似资料:
  • 我已在模型中设置变量。我想测试功能,但出现以下错误: SQLSTATE[42S22]:未找到列:“字段列表”中的1054未知列“\u方法”(SQL:updateset=临时水生领袖,=放置,=2,=这是我的描述,=2014-05-29 17:05:11其中客户id=1和=2) 当我的fillable没有这个参数时,为什么要对大喊大叫?我的更新功能是:

  • 请查看下面的代码。 我在“CompletedService”中有多条记录,并且在account表中有一个父id account\u id。我和你约会是为了钱。 ASC和DESC已经尝试过了。 尝试按whereHas排序,但不会影响任何记录。下面是模型关系。 我不需要在模型中使用orderby,因为我多次使用了这个关系,并且在这个查询中只需要orderby。 与一个已完成的服务记录关系只有一个账户。

  • 我是新来的拉威尔,我曾在codeigniter工作。我对雄辩的ORM概念着迷。我有一个关于雄辩能力的一般性问题。ORM的功能是什么,我的意思是我们可以获得相关表行的级别。如果你看“http://four.laravel.com/docs/eloquent#relationships 一对一 一对多 多对多 多态关系 在我看来,“一对一”意味着一级。表1表2

  • 我有一个如下的路由,它将根据url中的数据显示配置文件: 我在主页上有一个表单,它由一个输入框和区域选择器组成。我将此数据发布到: 问题是,我不知道如何将表单数据(如召唤者名称和区域)转换为url格式,在该格式中,用户将与配置文件页面一起显示,url将为/{Region}/{courdername}。我应该在控制器内部使用重定向::吗?我觉得那样做很糟糕。有什么建议吗? 现在,当我发布数据时,ur

  • 嘿,伙计们,我是拉威尔的新朋友。我有这张桌子 我如何能够获取每个科目的is_correct列计数? 谢谢伙计们!

  • 我想通过聊天Id获得用户和组之间的聊天次数。但查询没有给出聊天次数。它是空白的。我在堆栈溢出(Laravel Elount groupBy()和count,Laravel get count of results Basin groupBy)中也看到过类似的问题,并使用了那些标记为正确但仍然没有得到所需结果的查询。 我使用以下查询: 我的表格结构如下: 结果是这样的: )