SQL/SQL-LITE - 过滤后计算记录

2024-02-26

假设我有一个客户表和一个销售订单表,其架构如下:

  1. 客户 = {id, 姓名}
  2. 销售订单 = {id, customer_id, sales_representer}

具有以下定义:

  1. id 是两个表中的主键。
  2. customer_id 是外键引用客户。

我想实现以下查询:

For any customer whose sales_representer is 100, find the customer id, 
customer name and the number of his overall orders.

我构建了以下查询:

select C.id, C.name, count(C.id)
from customer C, sales_order S
where   C.id = S.customer_id and 
        S.sales_represntor = '100'
group by C.id, C.nname;

但作为 count(C.id) 的结果,我只得到 sales_representer 为 100 的销售数量。 我知道我可以添加另一个 sales_order 实例(即 S2)并从中进行计数,但在我看来它根本没有效率。

有人有解决办法吗?

谢谢


您可以使用相关子查询来计算销售额。 (在 SQLite 中,子查询通常与联接一样高效。)

SELECT id,
       name,
       (SELECT COUNT(*)
        FROM sales_order
        WHERE customer_id = customer.id) AS orders
FROM customer
WHERE id IN (SELECT customer_id
             FROM sales_order
             WHERE sales_representer = '100')

如果您关心效率,您应该使用以下命令检查查询解释查询计划 http://www.sqlite.org/eqp.html,或者更好的是,只需测量它们即可。

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

SQL/SQL-LITE - 过滤后计算记录 的相关文章

  • date_sub 对于 mysql 可以,对于 postgresql 可以

    此查询适用于 mySQL 不适用于 Postgresql select from where id and h gt date sub now INTERVAL 30 MINUTE 错误是 Query failed ERREUR erreu
  • 如何查找当前数据库类型

    我们有一个 SQL 脚本可以在多种类型的数据库上执行 是否可以获取正在执行 SQL 脚本的当前数据库的类型 注意 我们不能使用非标准 SQL 即 TSQL 等 不 ANSI SQL 中没有任何关于确定数据库供应商的内容
  • 在 MySQL 中对整数字段运行带引号的数字(字符串)查询时会发生哪些复杂情况

    在 SQL 中 不应引用整数 因为如果引用 它将是一个字符串 但我很好奇如果我这样做会出现什么问题 并发症 例如 SELECT FROM table WHERE id 1 正确的 vs SELECT FROM table WHERE id
  • PL/pgSQL SELECT 到数组中

    这是我的函数声明和主体的一部分 CREATE OR REPLACE FUNCTION access update RETURNS void AS DECLARE team ids bigint BEGIN SELECT INTO team
  • 如何在首次运行时填充大型 SQLite 数据库

    我正在开发一个基于 SQLite 数据库的字典应用程序 该数据库包含超过 300 000 行 问题在于 最终形式的数据库文件由全文索引表组成 并且重量远远超过150Mb 我通过创建无内容的 fts4 表设法将 db 文件大小降至最低 数据库
  • MySQL“LIKE”搜索不起作用

    我通过 LOAD DATA INFILE 在 MySQL 中导入了一个 txt 数据库 一切似乎都正常 唯一的问题是 如果我使用以下查询在数据库上搜索记录 SELECT FROM hobby WHERE name LIKE Beading
  • Linq To SQL - 拥有和分组依据

    我下面这个查询工作正常 不过我想使用 Linq 来实现它 select u ID u NAME from Task t join BuildingUser bu ON bu ID BUILDING t ID BUILDING join Us
  • SQL:如何在按部分分组的查询中使用子查询?

    如何在按部分分组的查询中使用子查询 我使用 SQL Server 2008 R2 和 Delphi 2010 我收到此错误 Cannot perform an aggregate function on an expression cont
  • 需要按天分割日期时间范围

    我有一个需要根据日期时间拆分的表 输入表 ID Start End A 2019 03 04 23 18 04 2019 03 04 23 21 25 A 2019 03 04 23 45 05 2019 03 05 00 15 14 所需
  • 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
  • 根据日期顺序排名

    我的数据如下 Heading Date A 2009 02 01 B 2009 02 03 c 2009 02 05 d 2009 02 06 e 2009 02 08 我需要如下排名 Heading Date Rank A 2009 02
  • 如何搜索例程的内容/(SP-触发函数)

    我需要在数据库内所有例程的例程主体 存储过程 函数 触发器 中搜索文本 我该怎么做 Thanks SELECT OBJECT NAME object id FROM sys sql modules WHERE definition LIKE
  • 在存储过程中验证用户的最简单方法?

    我需要一个存储过程 可以通过发送以下内容来检查登录尝试时他们是否是有效用户login and password查看它们在数据库中是否匹配 有没有一种简单的方法可以做到这一点 如果没有更多信息 我目前能提供的最好信息是 CREATE STOR
  • H2 用户定义的聚合函数 ListAgg 不能在第一个参数上使用 DISTINCT 或 TRIM()

    所以我有一个 DB2 生产数据库 我需要在其中使用可用的函数 ListAgg 我希望使用 H2 的单元测试能够正确测试此功能 不幸的是H2不直接支持ListAgg 但是 我可以创建一个用户定义的聚合函数 import java sql Co
  • SQLite中的ROWID是自动设置的吗?

    所以 我在 Ionic 上有这个应用程序 它使用SQLite ngCordova 插件 https github com litehelpers Cordova sqlite storage用于内部存储 在其上 我使用以下命令创建一个表 d
  • 提高第一个查询的性能

    如果执行以下数据库 postgres 查询 则第二次调用要快得多 我猜第一个查询很慢 因为操作系统 linux 需要从磁盘获取数据 第二个查询受益于文件系统级别和 postgres 中的缓存 有没有一种方法可以优化数据库以快速获得结果fir
  • 删除数据库中的行后如何重新排序ID

    我正在使用 C 来制作具有 sql 数据库的程序 在数据库中我有一个名为Workers 它有一个自动增量和主键ID column 当我删除一条记录时 ID 之间会出现间隙 删除记录后如何重新排序 ID UPDATE 我要做的就是找到记录后将
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • 是否可以引用同一个表中的不同列?

    如果博客有一个 类别 表 如下所示 CREATE TABLE categories id INTEGER PRIMARY KEY AUTO INCREMENT parent id INTEGER NOT NULL name VARCHAR

随机推荐

  • 我可以在 mongodb 的 NodeJS 驱动程序中手动指定 BSON 类型吗?如果我使用“$numberLong”,则会出现错误

    这就是我在将文档对象插入集合之前构建文档对象的方式 function newTupple name email return email email name name account status email verified I wan
  • 如何扭曲图像[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在做一个项目 我们需要扭曲图像 基本上 我想拍摄这张图片 并将其变成这样 请注意 文字也变形了 老实说 我不知道如何去做 所以任何帮助
  • 我什么时候应该使用 sed,什么时候应该使用 awk [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 解密 Android 设备上加密的字符串

    在 Android 4 4 设备上 已使用 spring android auth 1 0 1 RELEASE 模块中的 org springframework security crypto encrypt AndroidEncrypto
  • 在 LINQ to SQL 下管理不同开发人员的连接字符串

    使用 Subversion 中的源代码 当两台不同的计算机具有不同的连接字符串时 我会遇到问题 LINQ to SQL 设计器似乎只喜欢具有相同的连接字符串 设计者是否可以使用因开发人员具有不同的本地配置而变化的连接字符串 但 Web 应用
  • 如何开始使用 ReactJS Hello World 示例?

    我正在使用 MacBook Pro 我更喜欢在虚拟机中使用 ubuntu 进行 Web 开发 我在 Macbook 中创建了一个 index html 然后只需使用 Chrome 打开它 html 是按照此创建的video https eg
  • 在 python 中解析字符串:如何分割换行符,同时忽略引号内的换行符

    我有一个需要用 python 解析的文本 这是一个字符串 我想将其拆分为行列表 但是 如果换行符 n 在引号内 那么我们应该忽略它 例如 abcd efgh ijk n1234 567 qqqq n 890 n 应解析为以下几行的列表 ab
  • 无法在动态链接库 libstdc++-6.dll 中定位过程入口点 _gxx_personality_v0 错误

    昨天 我决定下载 安装并尝试使用 Allegro 5 我还下载了带有 MinGW 编译器的 Code Blocks 12 11 我设置了所有内容并正确安装了所有内容 或者我是这么认为的 并尝试运行示例代码以查看它是否有效 include
  • NSIS 插件“nsScreenshot”在 Windows NT 6.x 中不起作用

    我添加了一个比原始插件晚3年发布的代码 但它仍然返回错误 代码很简单 恕我直言 但我仍然很可能错过某些方面 看这段代码 nsScreenshot NSIS Plugin c 2003 Leon Zandman email protected
  • C#中主线程的引用

    如何从 C 中的另一个线程获取对主线程的引用 为什么需要这个 以加载到控制台应用程序的程序集为例 该程序集引发另一个想要在控制台应用程序的主线程上等待 加入 的线程 它将如何做到这一点 我是这样想的 在 Visual Studio 2010
  • 如何在asp.net core中定义返回html的函数

    基本上我需要像旧的 asp net 这样的东西 helper MakeNote string content p strong Note strong nbsp nbsp content p or JSX MakeNote note ret
  • 将流量从 80 转发到 8080 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我已经用puppet安装了tomcat 它在标准 8080 端口上运行 tomcat进程以tomcat用户身份启动 我想将所有流量从端口
  • iOS:使用HKObserverQuery的后台更新completionHandler

    HKObserverQuery有以下方法支持在后台接收更新 initWithSampleType predicate updateHandler The updateHandler has a completionHandler其中有以下内
  • 从 git 存储库中提取作者信息

    我正在尝试从 git 存储库中提取 源代码行 作者标签 对 最简单的方法是使用 git Blame 问题是 gitblame 将最后一个提交者视为作者 无论提交者只是缩进代码还是真正更改了代码 你知道有什么更好的方法吗 或者也许在尝试解决问
  • 将 WPF 用户控件选择传递给主机控件

    我有一个带有列表框的 WPF 用户控件 我想通过绑定将列表框中的选定项传递给调用控件 我怎样才能实现这个目标 您可以在用户控件上公开 SelectedItem 的新属性 并将其绑定到子控件 ListBox 用户控件的代码 不过我是从 Con
  • 自定义函数类

    我正在开发一个涉及从其他函数构造函数的项目 我有编写一个类来简化事情的想法 但如果不求助于使用我就无法让它工作 proto 这基本上就是我的愿景 function MyFunction var myFn new MyFunction myF
  • Express.js + lint 给出错误

    https www youtube com watch v Fa4cRMaTDUI https www youtube com watch v Fa4cRMaTDUI我正在观看这节课 并试图重现作者所做的一切 19 00 他设置了 vue
  • 特定模型的 Django 管理自定义模板

    我正在尝试在 Django 管理中为特定模型添加自定义模板 基本上我想在 Django admin 中显示地址模型的 Google 地图 那么对此有什么帮助吗 FineManual tm 对此进行了全面介绍 因此请先阅读此内容 检查这个网址
  • 将字段更改为ManyToMany时Django数据迁移

    我有一个 Django 应用程序 我想将字段从foreignkey更改为ManyToManyField 我想保留我的旧数据 为此 最简单 最好的流程是什么 如果重要的话 我使用 sqlite3 作为我的数据库后端 如果我对问题的总结不清楚
  • SQL/SQL-LITE - 过滤后计算记录

    假设我有一个客户表和一个销售订单表 其架构如下 客户 id 姓名 销售订单 id customer id sales representer 具有以下定义 id 是两个表中的主键 customer id 是外键引用客户 我想实现以下查询 F