统计某个时间段之前和之后存在的值

2024-03-19

我有以下简单的表格,您也可以在SQL Fiddle here http://www.sqlfiddle.com/#!9/74d8fb/3:

CREATE TABLE Orders (
    Customer TEXT,
    Order_Date DATE
);

INSERT INTO Orders
(Customer, Order_Date)
VALUES 
("Customer A", "2017-05-23"),
("Customer B", "2018-09-10"),
("Customer B", "2018-12-14"),
("Customer A", "2019-01-03"),
("Customer A", "2019-02-15"),
("Customer C", "2017-09-04"),
("Customer B", "2019-01-09"),
("Customer A", "2019-02-16"),
("Customer C", "2019-02-12"),
("Customer C", "2019-02-15"),
("Customer B", "2018-01-03");

如您所见,该表显示了不同客户的订单日期。
我使用下面的 SQL 来让客户知道

a) placed an order in February 2019 and
b) did not place an order in the 12 month before and
c) placed an order before this 12 months period

参考这个问题的答案here https://stackoverflow.com/questions/54872070/select-values-which-exist-before-and-after-a-certain-time-period .

SELECT o.Customer
FROM ORDERS o
GROUP BY o.Customer
HAVING SUM( o.Order_Date >= '2019-02-01' AND o.Order_Date < '2019-03-01' ) > 0 AND
       SUM( o.Order_Date >= '2018-01-02' AND o.Order_Date < '2019-02-01' ) = 0 AND
       SUM( o.Order_Date < '2018-01-02' ) > 0 ;

到目前为止,这一切都运行良好。


但是,现在我想实现 SQL 既列出满足上述条件的客户,又列出counts客户下的订单数量February 2019:

在上面的例子中,我期望得到以下结果:

Customer C     2  

我需要在查询中更改哪些内容才能实现此目的?


只需将其添加到select:

SELECT o.Customer,
       SUM( o.Order_Date >= '2019-02-01' AND o.Order_Date < '2019-03-01' ) as num_feb_orders
FROM ORDERS o
GROUP BY o.Customer
HAVING SUM( o.Order_Date >= '2019-02-01' AND o.Order_Date < '2019-03-01' ) > 0 AND
       SUM( o.Order_Date >= '2018-01-02' AND o.Order_Date < '2019-02-01' ) = 0 AND
       SUM( o.Order_Date < '2018-01-02' ) > 0 ;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

统计某个时间段之前和之后存在的值 的相关文章

  • MySQL C++ 连接器未解决的依赖关系(VS 2015)

    我正在尝试在 Windows Visual Studio 2015 上编译 MySQL Connector C 我根据以下内容使用CMake生成了项目文件官方说明 https dev mysql com doc connector cpp
  • 在 SQL 查询中使用 fn_Split

    我一直在努力争取fn Split在我的查询中正常工作 我到处搜索 并在这里找到了似乎接近我需要的答案 但我仍然无法使其发挥作用 基本上我试图返回与数组中的条目匹配的记录 我已经有了一个与我的数据库一起使用的表值函数 如下所示 Select
  • 按组内顺序排序

    order by 在第二个查询中不起作用 我需要先按 DNAID 订购 然后按 DNBID 订购 首先查询其顺序为 111221 第二个查询的顺序为 112112 有关我想要完成的任务的更多信息和细节https stackoverflow
  • MYSQL数据库删除行后需要进行后期优化

    我有一个当前为 10GB 的日志表 它有很多过去两年的数据 我真的觉得目前我不需要那么多 我是否错误地认为在表中保存多年的数据不好 表越小越好 我的桌子都有 MYISAM 引擎 我想删除 2014 年和 2015 年的所有数据 很快我就会删
  • PHP strtotime返回Mysql UNIX_TIMESTAMP的不同值

    我在 stackoverflow 上搜索过帖子 发现了一些类似的帖子 但我认为这是一篇不同的帖子 我的 PHP 和 Mysql 服务器的时区全部设置为 UTC 在表中我使用时间戳字段 值为 2010 11 08 02 54 15 我使用这样
  • 从 oracle 中为每个组选择最新行

    我在留言簿中有一张包含用户评论的表格 列有 id user id 标题 评论 时间戳 我需要为每个用户选择最新行 我尝试使用 group by 执行此操作 但没有管理它 因为我无法在按 user id 分组的同一查询中选择任何其他内容 SE
  • SQL Server - 在设置 COLLATE Latin1_General_CS_AS 的情况下搜索不区分大小写

    家长提问 https stackoverflow com questions 50974562 sql server update to match and replace only exact words感谢 Iamdave 部分问题得到
  • 通过“SELECT”命令选择每组的前两条记录的最佳方法是什么?

    例如我有下表 id group data 1 1 aaa 2 1 aaa 3 2 aaa 4 2 aaa 5 2 aaa 6 3 aaa 7 3 aaa 8 3 aaa 通过 SELECT 命令选择每组的前两条记录的最佳方法是什么 如果没有
  • 我应该将标签存储在文本字段还是单独的表中?

    我有一个表 其中的行如下所示 id path tags 1 pictures pic1 jpg car bmw 3 pictures pic2 jpg cat animal pussy 4 pictures pic3 png gun 基本上
  • 导出 Azure SQL 数据库时出现错误 SQL71501

    导出 Azure SQL 数据库时出现奇怪的错误 导出一直工作正常 直到最近发生一些架构更改 但现在出现错误 SQL71501 该数据库是V12 兼容性级别130 尽管master数据库仍兼容级别 120 该问题似乎是由一个新的表值函数引起
  • SQL:使用相等的键和最近的键进行连接(类似于 Pandas 的合并)

    例如 我有2个这样的表 对于表 1 中的每一行 我想获取该行 same customer id and nearest date 就我而言 table2 date lt table1 date 结果应该是这样的 我怎样才能在 SQL 中做到
  • varchar(20) 和 varchar(50) 相同吗?

    我看到评论 如果 varchar 20 列中有 5000 万个 10 到 15 个字符之间的值 而 varchar 50 列中有同样的 5000 万个值 它们将占用完全相同的空间 这就是重点varchar 而不是 char 有人可以告诉我原
  • 当添加列较少时追加到现有 SQLite 表,而不将数据库读入 R

    是否有一些简单的方法 无论是在 SQL 端还是在 R 端 将 data frame 附加到具有更多列的现有表 缺失的列应该用 NA 填充 如果它能够优雅地处理比表 1 列数更多的表 2 那么会加分吗 library RSQLite Crea
  • SQL查询多行变成单行

    有什么方法可以将通常返回具有相同值的多行的 SQL 查询更改为单行吗 例如 如果我现有的查询返回以下内容 ColA ColB 1 AA 1 BB 1 CC 2 AA 3 AA 我可以将查询更改为仅返回 3 行 并将 1 的第二个和第三个结果
  • 如何授予用户访问 SQL Server 中的 sys.master_files 的权限?

    我需要授予数据库用户读取权限sys master files桌子 我怎样才能做到这一点 目前用户拥有以下权限 Calling SELECT on sys master files返回空结果 我还使用以下命令测试了相同的查询sa用户按预期工作
  • 获取MySql中重复行的列表

    我有一张这样的桌子 ID nachname vorname 1 john doe 2 john doe 3 jim doe 4 Michael Knight 我需要一个查询 该查询将从具有相同 nachname 和 vorname 的记录
  • SQL:两个没有完整列匹配的表的并集

    我有一个table A其中有一组列A1 A2和一个具有一组列的 table bB1 B2 碰巧的是A2 B1但其余列不匹配 也不应该匹配 我想附加表格 所以我使用UNION ALL 对于不匹配的列 我使用null as COLUMN NAM
  • MS-Access 查询中的语法错误(缺少运算符)

    以下查询给了我 missing operator 语法错误 所需的输出是表中数据的组合 dbo tbl 和意见 vw 我用过的所有钥匙都存在 有任何想法吗 SELECT dbo tbl BOD fpartno AS PartNumber d
  • 如何在一列中存储数组或多个值

    运行 Postgres 7 4 是的 我们正在升级 我需要将 1 到 100 个选定项目存储到数据库的一个字段中 98 的情况下 只会输入 1 个项目 而 2 的情况下 如果是这样的话 会输入多个项目 这些项目只不过是文本描述 截至目前 长
  • 有没有办法从 MySQL 的列中提取与正则表达式匹配的文本?

    例如 如果特定列中的所有条目都具有 a z 0 9 形式 如何仅提取前导字母 以便 asdf123 和 as3456 分别返回 asdf 和 as 这对于 mysql 正则表达式功能来说是不可能的 除非安装一些似乎是为此设计的 udf 从技

随机推荐

  • 获取控件上的单击点

    我在我的 C Win 应用程序中使用旧的 ActiveX 控件 它有一个 MouseUp 事件 其 eventArgs 正在传递我们单击的点的 X 和 Y 但对于我的场景 我使用其 ItemClick 事件 并且其 eventArgs 没有
  • 提取元素并插入空格

    我在 python 中使用 BeautifulSoup 解析 html 我不知道如何在提取文本元素时插入空格 这是代码 import BeautifulSoup soup BeautifulSoup BeautifulSoup this b
  • c3p0 ResultSet.unwrap 抛出 AbstractMethodError

    我有一个 ResultSet 对象 需要将其转换为 OracleResultSet 以便我可以对其调用 getOPAQUE String 方法 我使用 c3p0 作为我的连接池 问题在于 c3p0 将 ResultSet 包装在 NewPr
  • 如何让 sphinx 在构建 html 时查找 virtualenv 中的模块?

    我想使用 virtualenv 而不是我机器上的本机环境来构建 html 文档 我已经进入 virtualenv 但当我运行时make html我收到错误消息 提示模块无法导入 Iknow这些错误是由于该模块在我的本机环境中不可用造成的 如
  • 我可以为 Istio 预置的经典 AWS ELB 定义子域吗?

    我将 Istio 部署在 AWS EKS 托管的 Kubernetes 集群中 这创建了一个名为 istio ingressgateway 的 LoadBalancer 类型的 Kubernetes 服务 其外部主机名为 redacted
  • 未找到基表或视图:1146 表

    Error 照亮 数据库 QueryException 42S02 SQLSTATE 42S02 未找到基表或视图 1146 表 mmictltd admins 不存在 SQL select fromadmins where email 电
  • 当我尝试更新实体框架中的模型时,为什么会出现“无法更新实体集,因为它有 DefiningQuery...”异常?

    使用实体框架借助 LINQ to SQL 进行更新时 会引发异常 System Data UpdateException Unable to update the EntitySet t emp because it has a Defin
  • Java 中有类似 PHP 的三元运算符的简短版本吗?

    在 PHP 中 三元运算符有一个简短的版本 expr1 expr2 expr3 变成 expr1 expr3 简短版本返回 true 时 expr1 的结果和 false 时 expr3 的结果 这允许很酷的代码可以根据自己的当前状态填充变
  • 用两个 CGPoints SpriteKit Swift 创建一条线

    我正在尝试制作一个简单的应用程序 您触摸一个点 无论您触摸哪里 精灵都会沿着一条线穿过该点到达屏幕边缘 我想绘制连接精灵原点 它的起点 和您触摸的点的线段 以及精灵原点和屏幕边缘终点之间的线段 这样我就可以可视化路径精灵以及原点 触摸点和终
  • 如何防止 Visual Studio 2012 扩展 MSBuild 4 通配符?

    我最近将我们的构建平台从基于 rake 的古老构建 别问 认真的 迁移到使用 msbuild 的构建平台 因为我们的许多团队成员不使用 Visual Studio 再次强调 不要问 他们习惯于将 cs 文件放入项目文件夹中 然后让它神奇地作
  • 带参数导航返回的 React Router 需要双击

    简单的问题 当我处于例如 dashboard路由器 我点击路由器并尝试返回 dashboard它对葡萄酒有效 但是从什么时候开始 users userID我导航到另一个路由器 users userID路由器并尝试返回我需要单击后退按钮两次
  • R:在数据框或矩阵中使用 t.test 函数[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 询问代码的问题必须对所解决的问题表现出最低限度的了解 包括尝试的解决方案 为什么它们不起作用以及预期结果 也可以看看 Stack Over
  • c# httpwebrequest getResponse() 冻结并挂起我的程序

    我试图使用 httpwebrequest 在远程服务器上使用类似于休息的服务 从第一次执行本身开始 我的代码就挂起了程序 然后我尝试将它作为控制台应用程序 以确保它与程序本身无关 但没有运气 string credentialsJson u
  • TreeView — 选定的节点样式不会出现在选定的节点上

    我的代码是
  • Java 项目的 SLOC

    我需要一个免费工具来计算 Java 项目的 SLOC 我只需要以下指标 SLOC 注释行数 可选地javadoc 指标 可选地按文件类型 java js css html xml 等 对统计信息进行排序 Bonus 100 Java 我不喜
  • Python Base 36 编码

    如何在 Python 中以 36 为基数对整数进行编码 然后再次解码 您尝试过维基百科的示例代码吗 def base36encode number alphabet 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Django TypeError:没有主键值的模型实例是不可散列的

    我有我的models py如下 class Article models Model date models DateTimeField null True blank True title models TextField default
  • 如何根据用户摘要生成随机 5 位数字

    大家好 我尝试根据用户总摘要生成 50 个 5 位数字 例如 用户给出 500000 然后我需要随机数 5 位乘 50 个数字等于 500000 我尝试了这个 但它不是 5 位数字 int balane 500000 int nums 50
  • 双向git镜像

    我有兴趣将本地 git 存储库设置为远程存储库的镜像 我读过一些可能相关的帖子 但主要区别是我需要对两个存储库具有读写访问权限 大多数时候 用户将针对 Repo A 进行工作 但有时他们会针对 Repo B 进行工作 并且这些需要通过服务器
  • 统计某个时间段之前和之后存在的值

    我有以下简单的表格 您也可以在SQL Fiddle here http www sqlfiddle com 9 74d8fb 3 CREATE TABLE Orders Customer TEXT Order Date DATE INSER