非聚合查询内部的聚合情况

2024-05-05

我有一个相当大的查询,其最简单的形式如下所示:

select r.rep_id, u.user_id, u.signup_date, pi.application_date, pi.management_date, aum
from table1 r
left join table2 u on r.user_id=u.user_id
left join table3 pi on u.user_id=pi.user_id

我需要再添加一个条件,为每个代表提供非空申请日期的用户计数(例如:代表 1 有 3 个已填写申请日期的用户),并将其分配到类别(因为有 3 个用户,代表是某一状态类别) )。这看起来像这样:

case when sum(case when application_date is not null then 1 else 0 end) >=10 then 'status1'
   when sum(case when application_date is not null then 1 else 0 end) >=5 then 'status2'
   when sum(case when application_date is not null then 1 else 0 end) >=1  then 'status3'
   else 'no_status' end as category

但是,如果我只是将其添加到 select 语句中,则所有代表都将变为 status1,因为 sum() 是在填充了申请日期的所有顾问上完成的:

select r.rep_id, u.user_id, u.signup_date, pi.application_date, pi.management_date, aum,
(
 select case when sum(case when application_date is not null then 1 else 0 end) >=10 then 'status1'
   when sum(case when application_date is not null then 1 else 0 end) >=5 then 'status2'
   when sum(case when application_date is not null then 1 else 0 end) >=1  then 'status3'
   else 'no_status' end as category
from table3
) as category
from table1 r
left join table2 u on r.user_id=u.user_id
left join table3 pi on u.user_id=pi.user_id

您能否协助将我的查询添加到各个代表而不是整体?非常感激!


根据您的描述,我认为您需要一个窗口函数:

select r.rep_id, u.user_id, u.signup_date, pi.application_date, pi.management_date, aum,
       count(pi.application_date) over (partition by r.rep_id) as newcol
from table1 r left join
     table2 u
     on r.user_id = u.user_id left join
     table3 pi
     on u.user_id = pi.user_id;

您可以使用count() in a case获取范围(如果您愿意的话)。

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

非聚合查询内部的聚合情况 的相关文章

  • 如何使用 SQL 查询在 Access 中的字段上设置验证规则?

    我正在使用 MS Access 2016 Office 365 目前遇到问题 下面是一个演示此问题的示例 这里我创建了一个表 名为节点家庭链接 由两个字段组成 NodeID 和 FamilyID 如下所示 现在 NodeID 是从另一个表
  • MySQL 按主键排序

    某些 SQL 服务器允许使用通用语句 例如ORDER BY PRIMARY KEY 我不相信这适用于 MySQL 是否有任何此类解决方法可以允许跨多个表自动选择 或者是否需要查找查询来确定主键 我一直在研究的解决方法包括调用SHOW COL
  • SQL SERVER 中的排序依据和大小写

    我需要在存储过程中按功能排序 一个值被发布到网络服务 并且基于该值我必须以某种方式对结果进行排序 即 当 ColName 按 ColName 发布订单时 当 ColName2 由 ColName2 发布订单时 我正在研究使用 Case 但出
  • Sql Server:如何在 WHERE 子句中使用 MAX 等聚合函数

    我想获得该记录的最大值 请帮我 SELECT rest field1 FROM mastertable AS m INNER JOIN SELECT t1 field1 field1 t2 field2 FROM table1 AS T1
  • 将 UPDATE 转换为 INSERT INTO ON DUPLICATE KEY UPDATE 语句

    我有这个 UPDATE MySQL 语句 效果很好 UPDATE table1 Inner Join table2 ON table2 id table1 gw id SET table1 field1 1 table1 field2 2
  • 如何在 SELECT 子句中编写带点(“.”)的列名?

    我正在尝试使用 编写列名称 没有成功 sample SELECT PrmTable Value MAX Value FROM TempTable or SELECT MAX Value AS PrmTable Value FROM Temp
  • 创建表作为 select 删除 postgresql 中的非空约束

    在 postgres sql 中 创建表时 select 删除了表上的非空约束 例如 对此没有单一命令的解决方案 要基于现有表 包括所有约束 创建表 请使用 create table B like a including constrain
  • 如何以最少的查询次数获取帖子列表和关联标签

    我的表格结构如下 标签 更多的是一个类别 id 标签名称 描述 slug POSTS ID 标题 网址 邮戳 id idPost idTag USERS ID 用户名 userSlug VOTES id idPost idUser 每个帖子
  • 如何授予所有表的 REFERENCES 权限

    我必须授予REFERENCES登录权限说sql login 我可以给予资助REFERENCES对单个表的权限 例如 GRANT REFERENCES ON Mytable TO sql login 有什么办法可以授予REFERENCES允许
  • postgres 有 CLOSEST 运算符吗?

    我正在寻找这样的东西 给定一个表格 id number 1 7 2 1 25 3 1 01 4 3 0 查询SELECT FROM my table WHEREnumberCLOSEST 1 将返回第 3 行 我只关心数字 现在我有一个程序
  • 限制 SQL Server 连接到特定 IP 地址

    我想将 SQL Server 实例的连接限制为特定 IP 地址 我想阻止来自除特定列表之外的任何 IP 地址的任何连接 这是可以在 SQL Server 实例或数据库中配置的东西吗 听起来像是你会使用Windows防火墙 http tech
  • Oracle 中的 SQL 调优 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何文章 链接可以让我找到 SQL 调优 Oracle 的示例 如果能用例子来解释那就太好了 我需
  • 如何在 sqlalchemy 中创建基于文字的查询?

    我创建了一个函数来创建表达式 def test operator1 operation operator2 return literal column operator1 op operation operator2 现在当我用 test
  • 对于数据库来说,选择正确的数据类型会影响性能吗?

    如果是这样 为什么 我的意思是 tinyint 的搜索速度比 int 快吗 如果是这样 性能上的实际差异是什么 是的 根据数据类型 它确实有所不同 int vs tinyint不会在速度上产生明显的差异 但会在数据大小上产生差异 假设tin
  • 如何在SSRS中的表上创建热图?

    如何在 SSRS 中创建这样的内容 颜色将根据行中的值 承销商 从红色变为绿色 所有这些都在一个组中 您可以通过右键单击各个单元格并根据表达式设置填充颜色来完成此操作 In the Image below I ve mistakingly
  • 获取家庭成员

    假设以下家庭 其构建架构是 create table PersonConn child int parent int insert into PersonConn values 1 2 insert into PersonConn valu
  • SQL Server 用分隔符分割字符串

    我有一个输入字符串 100 2 3 101 2 1 103 2 3 我想解析它并将其添加到具有 3 列的表中 因此它应该是 f x col1 col2 col3 100 2 3 类似的其他数据以逗号分隔作为记录和 作为列 Thanks ni
  • PHP 绑定“bigint”数据类型(MySQLi 准备好的语句)

    studentId 57004542323382 companyOfferId 7 sql INSERT INTO studentPlacement companyOfferId studentId VALUES if stmt db gt
  • 复选框上的数据绑定

    我目前正在将数据从 SQL 数据库之一提取到我的应用程序中 我可以让它适用于我的文本框和其他项目 但是 我似乎无法让它适用于复选框 这是我正在使用的代码 DataTable dt new DataTable dt using SqlConn
  • 拆分列中的字符串并在列中添加值

    我有一个包含几行数据的表 如下所示 16 W 2 Work ALBO 00 Proposal ALxO Amendement 1 20091022 signed pdf 17 W 2 Work ALBO 00 Proposal Level1

随机推荐

  • 从条件映射类型中排除“{}”

    我们在以下界面上工作 interface A a string b string c number d number 我们有一个类型可以让每个键都在T optional如果他们的类型是string and required如果是number
  • WebMatrix sql LIKE %

    我在执行以下查询时遇到问题 当我使用静态参数直接从 WebMatrix 执行它并返回几行时 它可以工作 但不能从我的 cshtml 页面执行 var accounts database Query SELECT Username Email
  • 通过 const 成员的引用传递时尝试引用已删除的函数

    我显然错过了一些东西 如果我有 class MyClass public const int something MyClass int Something something something 这将失败 尝试引用已删除的函数 因为我没有
  • 如何启动 VBS 的交互式控制台?

    与这个问题非常相似 如何启动 Perl 的交互式控制台 https stackoverflow com questions 73667 how can i start an interactive console for perl 我只是希
  • 如何使用正则表达式替换匹配的组值

    我想修改连接字符串中 数据源 组件的值 我正在考虑以下解决方案 使用这个正则表达式模式 data source w 1 w 我可以获得以下字符串匹配 Match Groups 0 Value data source MY PC SQLEXP
  • GCD获取队列名称/标签

    如何获取当前队列名称 我的意思是队列标签com example myqueue 在 Xcode 4 调试器中我只能看到 block invoke 1 怎么样dispatch queue get label http developer ap
  • 运行时 SQL 查询生成器

    我的问题类似于 Java中有什么好的动态SQL生成器库吗 https stackoverflow com questions 5620985 is there any good dynamic sql builder library in
  • aspnet webforms禁用提交按钮

    我在 Webforms 中遇到一个小问题 我正在尝试禁用提交时的提交按钮 以防止重复发布 问题是 如果在回发期间禁用提交按钮 则不会调用代码隐藏中的 onclick 方法 回发仍然发生 但按钮 onclick 方法不会被调用 有办法解决这个
  • 如何设计多租户mysql数据库[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 假设我需要设计一个数据库来托管多个公司的数据 现在 出于安全和管理目的 我需要确保不同公司的数据正确隔离 但我也不想启动 10 个 m
  • 如何使用 ASP.NET Core 进行流式传输

    如何在 ASP NET Core 中正确传输响应 有一个像这样的控制器 更新的代码 HttpGet test public async Task GetTest HttpContext Response ContentType text p
  • WCF服务契约上的数据注释

    我有一个 WCF 服务 其中定义了一个 DataContract 类 每个属性都有 DataMember 属性 并且我已向其中几个属性添加了几个数据注释属性 Required 和 StringLength 然后 我在 ASP NET MVC
  • Javascript 中左侧的可选链接

    是否可以使用可选链接 https developer mozilla org en US docs Web JavaScript Reference Operators Optional chaining运算符位于赋值的左侧 在 JavaS
  • 为 UILabel 设置不同字体的问题

    我想将字体大小和姓氏设置为 titleLabel Helvetica Neue UltraLight titleLabel setFont UIFont fontWithName Helvetica Neue UltraLight size
  • 如何允许Windows Server上的MySQL进行外部远程访问?

    我已经在我的 Windows Server 2008 R2 上安装了 xampp 我在那里运行一个脚本来存储当天的数据 现在我想通过 mysql connect hostname username pw 连接数据库从我自己的计算机或外部检索
  • 绝对定位的元素如何在没有任何 z-index 的情况下与后续/下一个元素重叠?

    请看我的fiddle http jsfiddle net CNKsx here 我试图了解绝对定位的 红色六边形 图标如何在没有 z index 的情况下与 input textarea 元素重叠
  • 如何在android aidl 文件中返回MyObject 列表?

    我的 aidl 文件中有这个方法 void getObjects out List
  • 如何从 colorbox 获取返回值?

    我有一个颜色框 可以让用户选择图像 如何从颜色盒中获取文件名 我注意到onClosed功能 解决方案 正如 Gummy 所建议的 我使用了 onComplete 函数 如以下代码所示 返回 页面
  • 如何找到哪个 rspec 测试花费了这么长时间

    我们的一个 或几个 测试花费了很长时间 我们希望对其进行优化 我们已经进行了 1000 次测试 因此对我来说运行每个文件是不切实际的 有没有一种简单的方法可以找到慢的 这是 rspec 1 3 在 RSpec 2 和 3 中 您可以使用 p
  • 如何让图片在div中居中?

    我的 HTML 代码如下所示 div class ctn img src some img jpg div The ctn应该是固定大小 例如 150 150 但 IMG 的尺寸可能更大或更小 200 50 50 200 50 50 等 如
  • 非聚合查询内部的聚合情况

    我有一个相当大的查询 其最简单的形式如下所示 select r rep id u user id u signup date pi application date pi management date aum from table1 r