SQL查询获取另一个表中多行的行数

2024-02-11

在我的应用程序中,我有一组可以在列出资源时应用的过滤器,这些过滤器通过在执行查询之前添加 WHERE 子句等来构建查询。这是使用 SQL Server 2008。

我有两个相关的表,一个包含有关资源的一些静态数据,另一个可以包含与该资源相关的任意/可选字段。

第一个表是这样的(表名和字段已更改):

CREATE TABLE Resources (
    ResID       varbinary(28),

    ... extra stuff omitted

    type        integer );

第二个表只有名称/值对和相应的资源 ID

CREATE TABLE ResourceFields (
    ResID       varbinary(28) NOT NULL,

    Name        nvarchar(255) NOT NULL,
    Value       nvarchar(1024) NOT NULL);

因此,对于此示例,“ResourceFields”中可能存在多个行,其名称 =“ContactName”,且具有相同的 ResID。

我想要做的是获取“资源”表中的行数,这些行数在“资源字段”中列出了多个“联系人姓名”,且“类型”等于某个值。

我想出了这个(别笑——我知道的 SQL 足以引起问题)

SELECT count(r.ResID) 
    FROM Resources as r 
        INNER JOIN ResourceFields AS rf 
            ON rf.ResID = r.ResID 
                AND rf.name = 'ContactName' 
    WHERE r.type = 1 
    GROUP BY rf.ResID 
    HAVING COUNT(rf.Value) > 1;

但我没有返回“资源”中的行数(我的测试集中为 43),而是得到了所有返回的 COUNT(rf.Value) 值(即 43 个单独的计数)。

我究竟做错了什么?


只需使用原始查询作为派生表(将其放入子选择中):

SELECT COUNT(*)
FROM (
    SELECT count(*) AS C
    FROM Resources as r 
        INNER JOIN ResourceFields AS rf 
            ON rf.ResID = r.ResID 
                AND rf.name = 'ContactName' 
    WHERE r.type = 1 
    GROUP BY rf.ResID 
    HAVING COUNT(rf.Value) > 1;
) s
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL查询获取另一个表中多行的行数 的相关文章

  • Postgresql 一张表的多个计数

    我想从表中的两列中获得这些列中值的统一计数 例如 两列是 表 报告 type place one home two school three work four cafe five friends six mall one work one
  • SQL Server 2008R2 和创建 XML 文档

    论坛上的第一篇文章 因为我真的被这个问题困住了 以下查询正确地将有效的 XML 文档分配给 xTempXML 变量 类型为 xml 注 文档的长度 转换为varchar max 711 select xTempXML select Pres
  • 什么时候应该使用 C++ 而不是 SQL?

    我是一名 C 程序员 偶尔使用 MySQL 来处理数据库 但我的 SQL 知识相当有限 但我肯定愿意改变这一点 目前 我正在尝试仅使用 SQL 查询对数据库中的数据进行分析 但我准备放弃了 转而将数据导入到C 中 用C 代码进行分析 我和同
  • 如何将 数组传递给存储过程

    我有一个清单索赔数据在 C 中 它有三个项目 日期 类型和描述 其中可以有多行 如下所示 索赔数据 Date Type Description 01 02 2012 Medical Its a medical 05 02 2013 Thef
  • Reporting Services 在哪里存储其日志文件

    最相关的谷歌结果似乎表明 为了访问日志 我们必须将您自己的日志表部署到数据库并制作报告服务写入它 http technet microsoft com en us library ms157403 aspx 简而言之 Reporting S
  • 如何搜索例程的内容/(SP-触发函数)

    我需要在数据库内所有例程的例程主体 存储过程 函数 触发器 中搜索文本 我该怎么做 Thanks SELECT OBJECT NAME object id FROM sys sql modules WHERE definition LIKE
  • MySQL中如何声明变量?

    如何在mysql中声明一个变量 以便我的第二个查询可以使用它 我想写一些类似的东西 SET start 1 SET finish 10 SELECT FROM places WHERE place BETWEEN start AND fin
  • 同一索引操作上的不同估计行?

    简介和背景 我必须优化一个简单的查询 下面的示例 重写几次后 我认识到同一个索引操作的估计行数会根据查询的编写方式而有所不同 最初 该查询执行了聚集索引扫描 因为生产中的表包含二进制列 该表相当大 大约 100 GB 并且全表扫描执行起来需
  • 快速查询最新记录的方法?

    我有一张这样的表 USER PLAN START DATE END DATE 1 A 20110101 NULL 1 B 20100101 20101231 2 A 20100101 20100505 在某种程度上 如果END DATE i
  • 如何在MYSQL中将整个字符串小写并保持第一个大写[重复]

    这个问题在这里已经有答案了 我的表栏目 我预期的输出会在列中发生变化 Smith Allen Doyle Dennis Baker Waker 这是我尝试过的 但不起作用 UPDATE TABLE employee SET last nam
  • 使用 groupby 过滤器后应用 jinja 过滤器

    我有一个字典列表 我想按某个属性进行分组 然后按另一个属性求和 对于变量 foo 这将类似于 foo groupby a sum attribute b 这显然行不通 因为之后groupby 我有一个元组列表 有什么方法可以解压元组然后重新
  • 提高第一个查询的性能

    如果执行以下数据库 postgres 查询 则第二次调用要快得多 我猜第一个查询很慢 因为操作系统 linux 需要从磁盘获取数据 第二个查询受益于文件系统级别和 postgres 中的缓存 有没有一种方法可以优化数据库以快速获得结果fir
  • 是否有适用于 SQL Server Express 的 SQL Server Profiler? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 是否有适用于 SQL Server Express 的 SQL Server Profiler 也许是开源的 或者也许只是一个可以帮助我查
  • 解析带下划线的 SQL Server 数字文字

    我想知道它为什么有效以及为什么它不返回错误 SELECT 2015 11 Result 11 2015 第二种情况 SELECT 2 1 a a 2 1 检查元数据 SELECT name system type name FROM sys
  • SQL 连接两个没有关系的表

    我有具有相同结构的不同表 我想通过其中一列将它们连接起来 问题是他们不共享该专栏中的信息 Table 1 Type A Name Value Table 2 Type B Name Value 结果表 在单列中 nameFromA name
  • SQL查询查找表的主键?

    我怎样才能找到哪一列首要的关键使用查询来创建表 这是重复的question https stackoverflow com questions 893874 mysql determine tables primary key dynami
  • SQL 约束以防止根据列的先前值更新列

    是否可以使用检查约束 或其他一些技术 来防止在更新记录时设置与其先前值相矛盾的值 一个例子是 NULL 时间戳 表明发生了某些事情 例如 file exported 一旦文件被导出并且具有非 NULL 值 就不应再将其设置为 NULL 另一
  • 如何使用 BigQuery 有效地选择另一个表中匹配子字符串的记录?

    我有一个包含数百万个字符串的表 我想将其与包含大约两万个字符串的表进行匹配 如下所示 standardSQL SELECT record FROM record JOIN fragment ON record name LIKE CONCA
  • 关键字“table”附近的语法不正确,无法提取结果集

    我使用 SQL Server 创建了一个项目 其中包含以下文件 UserDAO java public class UserDAO private static SessionFactory sessionFactory static se
  • SQL 更新 - 更新选定的行

    我正在使用 SQL Server 2008 我有一个名为MYTABLE有两列 ID STATUS 我想编写一个存储过程来返回其记录STATUS是 0 但是这个存储过程必须更新STATUS返回行数为 1 如何在单个查询中执行此选择和更新操作

随机推荐

  • 特征分解让我对 numpy 感到好奇

    我测试了 A Q Lambda Q inverse 定理 其中 Q 是具有特征向量的矩阵 Lambda 是对角线上具有特征值的对角矩阵 我的代码如下 import numpy as np from numpy import linalg a
  • TypeScript 类型化函数参数接受任何

    这是一个编译得很好的 TypeScript 片段 使用 1 5 3 function alertNumber a number alert a 1 var x any string alertNumber x 请求某种类型参数的函数怎么可能
  • 在“Component”装饰器中动态加载 Angular 模板

    我想像这样动态加载角度模板 import getHTMLTemplate from util const dynamicTemplate getHTMLTemplate Component selector app button templ
  • 定义接受可变数量参数的宏生成的宏

    我正在尝试编写一个宏生成宏 其中它生成的宏采用可变数量的参数 我想知道是否有办法使以下代码工作 define syntax rule greet name define syntax rule name args printf hello
  • 如何在Python中定义保存1000位数字的小数类?

    我需要一个包含 1000 位十进制数字的类来计算一系列数据 例如 pi 数 花时间并不重要 我该如何定义 add 执行此操作的函数 例如我需要一个可以保存这个数字的值 3 1415926535897932384626433832795028
  • 客户端(android 应用程序)确认发送的 gcm 消息

    Android 应用程序可以通过 googleclougmessaging send 向 ccs 服务器获取发送的 gcm 消息的确认吗 客户端如何确定消息是否已传送到 ccs 服务器 根据云连接服务器文档 从设备向云发送消息时唯一的确认是
  • 传递类的私有方法作为 std::sort 的比较运算符

    我正在编写代码来解决以下问题 给定一组数字x 0 x 1 x N 1 找到使它们按升序排序的排列 换句话说 我想找到 0 2 N 1 上的排列 例如i 0 i 1 i N 1 这样x i 0 lt x i 1 lt lt x i N 1 为
  • 带标点符号的实时语音识别

    使用自动标点符号实现语音识别 语音到文本 的方法是什么 我想用它来将讲座 45 分钟的演讲 转换为文本 并在可能的情况下动态更新视图 我尝试了 SpeechRecognizer 但它只给我没有标点符号的单词 并且在第一个单词后停止收听 您可
  • 隐藏仅在 Windows 上显示的无用滚动条

    我的导航栏中有一个引导下拉列表 显示通知列表 这是非常标准的代码 除了我设置的max height 300px and overflow y scroll on the ul元素 在 Mac 上的 Chrome 或 Firefox 中查看时
  • Django 多对多 (m2m) 与同一模型的关系

    我想在用户类对象之间创建多对多关系 我有这样的事情 class MyUser models Model blocked users models ManyToManyField MyUser blank True null True 问题是
  • 为什么 mysql 和 sqlite 的 SELECT 结果不同?

    我再问这个question https stackoverflow com questions 10161153 sqlite exists keyword how to query the highest average以简化和扩展的方式
  • 如何更改 Android 中 Exoplayer 中的音轨

    我有一些带有两个音轨的视频 我想在视频播放期间将音轨更改为另一种语言 我已经尝试了一切但仍然没有成功 这是我的代码 我正在使用 firebase 存储来存储视频 我到处搜索但找不到解决方案 我的代码正在运行 仍然没有出现任何错误 但我不可能
  • 如何检查是否设置了闹钟

    我正在尝试检查我的闹钟是否处于活动状态 在设置闹钟之前 alarmIsSet 方法将返回 false 设置闹钟时返回 true 到目前为止一切顺利 但是 在我取消闹钟后 alarmIsSet 将继续返回 true 直到我重新启动设备 我该如
  • 检查字符串是否采用特定日期格式

    您好 我收到一个带有日期格式的字符串年 月 日 但我想将它与格式进行比较日 月 年万一它不一样 肯定不一样 我想转换它 对我来说问题不是转换 而是比较两种格式 所以我想也许是这样的 var dt obj date this a string
  • 类型错误:无法使用此索引类型执行 __truediv__:DatetimeArray

    我有一个包含收盘价的数据框 Date World EN UT IND MAT CS CD IT FN TC HC 0 1997 06 13 939 3672 96 0238 75 2840 105 2635 124 7077 80 4562
  • 使用 Google 应用程序脚本将 xlsx 文件从 gdrive 导入到电子表格

    我目前正在创建一个脚本 可以将从 gdrive 文件夹存储的 xlsx 文件导入到电子表格中 我是否可以知道是否有人有我可以探索的参考或示例我已经做了一些研究 但其中一些正在 CSV 过程中 Firstly 这不是一些赠品服务 如果没有代码
  • 没有缓存版本的 gradle

    我在同步 gradle 时收到此错误 我对 gradle 还很陌生 所以不知道到底是什么问题 错误 没有 com android tools build 的缓存版本 gradle 0 10 1 可用于离线模式 当我去Setting gt G
  • 以编程方式将 SVG 形状转换为路径(lineto、moveto)

    我有一个来自 Inkscape Illustrator 或任何其他应用程序的 SVG 文件 我想将形状转换为lineto moveto curveto format 我想要的是这样的 Appname svgfile outfilewithp
  • Spring boot 中 /* 和 /** 模式有什么区别?

    当我发现过滤器之间存在差异时 我试图为过滤器注册某些 URL and 模式 Bean public FilterRegistrationBean tokenAuthenticationFilterBean FilterRegistratio
  • SQL查询获取另一个表中多行的行数

    在我的应用程序中 我有一组可以在列出资源时应用的过滤器 这些过滤器通过在执行查询之前添加 WHERE 子句等来构建查询 这是使用 SQL Server 2008 我有两个相关的表 一个包含有关资源的一些静态数据 另一个可以包含与该资源相关的