原则 2 选择计数 groupBy

2024-01-10

我正在尝试检索许多具有唯一 uid 的行。

$qb->select('COUNT() as cnt')
            ->from($type, 'c')
            ->groupBy('c.organization, c.process_role, c.domain, c.year')
            ->getQuery()->getSingleScalarResult()

但它返回一个组计数数组。我该如何正确地写这个?

终于可以了,但是有点丑

$count = $this->_em->createQuery( 'SELECT COUNT(c.id) FROM '.$type.' as c WHERE c.id IN ('
            . 'SELECT c1.id FROM ' . $type . ' c1 '
            . 'GROUP BY c1.organization, c1.process_role, c1.domain, c1.year)')
            ->getSingleScalarResult();

尝试分手你的单身groupBy into addGroupBy功能:

$qb->select('COUNT(c) as cnt')
            ->from($type, 'c')
            ->groupBy('c.organization')
            ->addGroupBy('c.process_role')
            ->addGroupBy('c.domain')
            ->addGroupBy('c.year')
            ->getQuery()->getSingleScalarResult();

然而,这实际上会返回相同的结果,因为它只是根据这 4 个变量将结果分组到唯一的集合中。你应该使用DISTINCT选择方法并计算结果行数。

$rows = $this->getDoctrine()->getManager()
    ->createQuery(
        'SELECT DISTINCT c.organization, c.process_role, c.domain, c.year FROM ' . $type . ' c'
    )
    ->getArrayResult();
$count = count($rows);

这是我知道的唯一可行的方法,因为 DQL 不支持任何替代策略(例如SELECT COUNT(*) FROM (SELECT DISTINCT ... ))

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

原则 2 选择计数 groupBy 的相关文章

随机推荐

  • 仅将 4 行代码从 Objective C 转换为 Swift(指针)

    两天来我一直在将一段代码从 Objective C 翻译成 Swift CFArrayRef keyref NULL CFDictionaryRef identityDict CFArrayGetValueAtIndex keyref 0
  • 在活动中禁用电源按钮

    我正在开发一个应用程序 其中要求不允许用户使用电源按钮锁定屏幕或关闭Android设备 因此我必须禁用电源按钮并覆盖电源按钮功能 我已经搜索过互联网上也有很多 但找不到任何东西 我已经使用了这两段代码 但它仍然对我不起作用 Override
  • Ansible 检查字典是否存在

    我想部署额外的mysql用户 如果设置 所以我正在使用字典 例如 mysql additional users user1 password mysecretpass privs database1 ALL 只要定义了字典 它就可以正常工作
  • C# - 使用 RSA 加密和解密数据

    我在 C 中有以下代码 主班 X509Certificate2 cert new X509Certificate2 C test pfx hello X509KeyStorageFlags Exportable X509KeyStorage
  • ASP.Net 用户忘记密码问题的答案

    对于同时忘记密码和密码重置问题答案的用户 如何重置密码 我正在使用 ASP Net 会员资格 假设您的会员资格提供商 AspNetSqlMembershipProvider 位于网页配置 has requiresQuestionAndAns
  • 类型“Observable”上不存在属性“interval”

    我的 Angular2 组件类的构造函数中有以下代码 Observable from 1 2 3 interval 2000 subscribe e gt console log e 我导入了以下内容 import Observable f
  • 打印按行排序的 zip 中文件的注释,Python

    就是这样 我必须编写一个程序 该程序首先读取 zip 中的文件 在该文件中它将找到接下来要读取的 txt 文件的名称 依此类推 直到到达一个没有该名称的文件 接下来是一个 所以它只打印内容 我做到了并且工作得很好 但是 在它读取所有文件之后
  • 单机上的 MPI 并行程序执行

    我想在带有核心 i7 cpu 的单台电脑上运行并行代码我可以编译我的代码 但运行它时遇到问题 我使用 mpicxx 编译代码 当我通过 mpirun np 8 a out 运行它时 只有一个进程 我的操作系统是linux ubuntu 11
  • Spark 流异常:java.util.NoSuchElementException:None.get

    我在写信SparkStreaming通过将数据转换为数据帧来将数据传输到 HDFS Code object KafkaSparkHdfs val sparkConf new SparkConf setMaster local setAppN
  • 在 OS X 10.10 下,在 PyCharm 中使用 VirtualBox 设置 Vagrant 时出错

    当设置远程解释器并选择 Vagrant 时 我在 PyCharm 中收到以下错误 Can t Get Vagrant Settings 0 31mThe provider virtualbox that was requested to b
  • 如何更改chartjs中图例的颜色并能够添加一个图例?

    我想更改图例的颜色 因为我想要不同的颜色代表不同的情况 但现在图例仅使用我在条形图上设置的第一种颜色 我还想问一下 是否可以多设置一个图例 比如粉色代表A情况 蓝色代表B情况 Here is the link 代码在这里 https jsf
  • 如何从表中获取最后一个插入ID

    我想获取表中最后插入的 ID 的值 我怎样才能做到这一点 那么我使用的解决方案是 select id from NEW TABLE insert into val1 val2 values lorem ipsum 这会从数据库中插入的最后一
  • php 中的 exec 导致“脚本标头过早结束:php-cgi.exe”错误

    我编写了一个 php 脚本 它使用 exec 调用外部命令 该命令将空间数据库查询结果编译到形状文件中 在具有大量记录 例如 15 000 条 的表中 执行此命令可能需要长达 7 分钟的时间 该脚本在不需要太长时间 可能 脚本标题过早结束意
  • PySide QWebView 和下载不支持的内容

    下面是使用 PySide 演示 Web 应用程序等的最小浏览器的代码 它通常按照我想要的方式运行 尽管我似乎不太清楚如何成功下载不支持的内容 在 Finished 方法中 self reply readAll 返回一个空的 QByteArr
  • 使用 Selenium 和 jUnit 的第一步 - 有什么好的教程吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何将过滤器关键字上的字符串传递给 Django 对象模型?

    如何在视图的关键字对象过滤器上传递变量 I have my object MyModel objects filter my keyword my filter values 我想从来自字符串的变量中获取 my keyword 如下所示 m
  • 在不同平台上使用 sqlite 和文件锁定是否存在已知问题?

    我使用 sqlite 来创建专有文件的索引 并且将使用多个线程 使用不同的 sqlite 句柄 访问数据库以进行读取和写入 我知道 sqlite 锁定文件是为了为读取器 写入器提供并发性 并且依赖于操作系统文件 api 进行锁定 这在 Wi
  • TS2307:在 TypeScript 上导入 Angular2 时找不到模块“angular2/core”

    大家好 我有一点 Angular 1 的背景 我正在学习 Angular 2 对于从 Angular 1 开始 唯一的依赖是添加角度源angular js or angular min js 当通过 script 标签尝试使用 Angula
  • 什么是概念?

    我听说过所有关于 C 0x 不再有概念的新消息 在 上 但我不知道它们是什么 有人可以向我解释一下吗 概念是一种通用编程功能 允许编写模板代码的人指定类型参数需要满足的要求 例如 某些集合类型需要集合的类型参数来定义 这有点过于简单化 但我
  • 原则 2 选择计数 groupBy

    我正在尝试检索许多具有唯一 uid 的行 qb gt select COUNT as cnt gt from type c gt groupBy c organization c process role c domain c year g