- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
MySQL菜鸟问题:
我有两个实体“foo”和“bar”,我想将它们的事件关联起来。具体来说,我想确定哪些“bar”对象与给定的“foo”对象同时处于事件状态。
为此,我建立了一个简单的 MySQL 数据库,其中包含两个表:
select * from foo;
+------+---------------------+---------------------+
| id | arrive | depart |
+------+---------------------+---------------------+
| 1 | 2014-10-01 08:00:00 | 2014-10-01 09:00:00 |
| 1 | 2014-10-01 10:00:00 | 2014-10-01 11:00:00 |
| 1 | 2014-10-01 12:00:00 | 2014-10-01 13:00:00 |
| 2 | 2014-10-01 09:00:00 | 2014-10-01 10:00:00 |
| 2 | 2014-10-01 12:00:00 | 2014-10-01 13:00:00 |
+------+---------------------+---------------------+
select * from bar;
+------+---------------------+---------------------+
| id | start | end |
+------+---------------------+---------------------+
| 1 | 2014-10-01 08:05:00 | 2014-10-01 08:55:00 |
| 1 | 2014-10-01 09:05:00 | 2014-10-01 09:55:00 |
| 1 | 2014-10-01 11:05:00 | 2014-10-01 11:55:00 |
| 2 | 2014-10-01 11:05:00 | 2014-10-01 11:55:00 |
| 2 | 2014-10-01 12:05:00 | 2014-10-01 12:55:00 |
| 2 | 2014-10-01 07:05:00 | 2014-10-01 07:55:00 |
| 3 | 2014-10-01 08:05:00 | 2014-10-01 08:55:00 |
| 3 | 2014-10-01 10:05:00 | 2014-10-01 10:55:00 |
| 3 | 2014-10-01 12:05:00 | 2014-10-01 12:55:00 |
+------+---------------------+---------------------+
不用说,“到达”和“开始”列代表事件周期的开始,“出发”和“结束”列代表每个周期的结束,而 id 列是每个对象的唯一标识符.
作为第一步,对于 foo 中的每个事件周期,我想确定在同一时间范围内处于事件状态的 bar 对象集。
根据上面 foo #1 的示例数据:在 8:00 到 9:00 之间(即在 foo #1 的第一个事件期间),bar #1 和 bar #3 都处于事件状态,10:00 至 11:00 期间,仅第 3 条酒吧处于事件状态,12:00 和 13:00 之间,#2 柱和 #3 柱都处于事件状态,等等。
一旦确定了这些集合,如果我可以确定它们的交集,我将得到我想要的答案(例如,bar #3 是唯一与 foo 对象 #1 同时处于事件状态的 bar 对象)。
我正在尝试开发一个将返回此结果的查询。理想情况下,该查询会遍历整个数据库并吐出包含一个“foo”id 和一个“bar”id 的行,其中事件一致。
作为起点,我提出了一个查询来识别在 foo 事件的每个周期内处于事件状态的所有 bar 对象:
SELECT foo.id,
bar.id
FROM foo
LEFT JOIN bar
ON bar.start >= foo.arrive
AND bar.end <= foo.depart;
但是,我不知道接下来该去哪里。相关子查询似乎可能有用,但我没有太多运气来制定一个没有错误的子查询。我什至不确定这是否是正确的方法。
有什么建议吗?
最佳答案
据我所知,您的 JOIN 查询是正确的。它选取完全包含在您的(到达 - 离开)间隔内的(开始 - 结束)间隔。 JOIN 是正确的选择。
将倒数添加到结果集中可以更容易地弄清楚:
SELECT foo.id AS fooid, arrive, depart,
bar.id AS barid, start, end
FROM foo
LEFT JOIN bar
ON bar.start >= foo.arrive
AND bar.end <= foo.depart
这是一个显示这一点的 SQL fiddle 。 http://sqlfiddle.com/#!2/68b7dc/3/0
然后,您要做的就是计算您拥有的不同“foo”项目的数量,并计算不同组合的数量。然后你将它们结合在一起,你就得到了你想要的结果。 http://sqlfiddle.com/#!2/ed5ac/5/0
SELECT a.fooid, b.barid
FROM (
SELECT COUNT(*) AS count,
id AS fooid
FROM foo
GROUP BY id
) AS a
JOIN (
SELECT COUNT(*) AS count,
foo.id AS fooid,
bar.id AS barid
FROM foo
LEFT JOIN bar
ON bar.start >= foo.arrive
AND bar.end <= foo.depart
GROUP BY foo.id, bar.id
) AS b ON a.count=b.count AND a.fooid = b.fooid
我认为这符合你的要求。但如果没有更彻底的解释,很难确定。
关于mysql - 使用 MySQL 进行事件相关性查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26168356/
我有一个如下所示的数据框: Samples GENE GEN1 GEN2 GEN3 GEN4 GEN5 Sample1 21.0 160 110 3.90 2.62 16.5 Sa
我有以下映射 posts":{ "properties":{ "prop1": { "type": "nested", "properties": { "item
我有两个维度相等的矩阵(p 和 e),我想在同名的列之间建立斯 PIL 曼相关。我想在矩阵 (M) 中输出对相关性 我使用了 Psych 库中的 corr.test() 函数,这是我所做的: libr
我有两个维度相等的矩阵(p 和 e),我想在同名的列之间建立斯 PIL 曼相关。我想在矩阵 (M) 中输出对相关性 我使用了 Psych 库中的 corr.test() 函数,这是我所做的: libr
我正在尝试使用 estpost 和 community-contributed 命令将 Spearman 相关矩阵导出到 rtf 或 Excel 文件中 esttab。 但是,我收到以下错误: inv
我在网上找到了以下查询: SELECT company_title FROM companies WHERE company_title like '%gge%' GROUP BY compa
我是 Sphinx 和 Lucene 的重度用户。Sphinx 只需要一个数据库,对其进行索引。然后您调用 Sphinx 获取 ID。 但是,如果我想创建一个非常微型 的搜索引擎怎么办?就几行数据,几
是否有我要在下面描述的模式/算法的名称?... 假设您有一棵像这样的相关数据树: IDEs Visual Studio Visual Studio 2008 Visual Studio 2010 Ec
早上好。这是我的问题:我有几个文件,如下所示: 104 0.1697 12.3513214 15.9136214 112 -0.3146 12.0517303 14.8027303 122 0.271
在尝试将function_score与boost_mode: "sum"一起使用时(因为这样可以更轻松地跟踪不同的贡献),我想归一化查询相关性对整体文档分数的影响,但是为此,我需要知道它可以取什么值。
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
X,Y 的 spearmanr(Spearman 相关性)输出为我提供以下信息: 相关性:0.54542821980327882 P 值:2.3569040685361066e-65 其中 len(X
我有一个 Pandas 数据框,它有一个七年时间范围内的日期时间索引和 10 种不同 Assets 的价格数据。我想运行 dataframe.corr 函数来评估 Assets 之间的关系,我的问题是
我有相同数据(公司)的 2 个信息源,我可以通过唯一 ID(契约(Contract)号)将它们连接在一起。第二个不同来源的存在是由于这两个来源是手动独立更新的。所以我在 2 个表中有一个 ID 和一个
我正在尝试在php中实现两组数据之间人员相关系数的计算。我只是想做可以在这个 url 上找到的移植 python 脚本 http://answers.oreilly.com/topic/1066-ho
所以我使用 PHP Symfony 和 Ongr-Elasticsearch 包来查询我的文档并返回匹配的对象。结果似乎按相关性/分数排序,但实际相关性/分数不包含在对象本身中。 这可能吗?我想将分数
我想使用滚动窗口计算 DataFrame 两列之间的 Spearman 和/或 Pearson 相关性。 我试过df['corr'] = df['col1'].rolling(P).corr(df['
我正在处理一个大型数据集。不过,我将从一个小示例开始,以说明我要实现的目标。 我有以下向量: season %group_by(season, round, team)%>%dplyr::mutate
我正在使用 OIDC 的混合身份验证流程。 options.Events.OnRedirectToIdentityProvider = redirectContext =>
我正在尝试查询我的产品ElasticSearch索引并创建一个script_score,但我一直收到错误Variable [relevancy] is not defined. 我尝试只用一个数字替换
我是一名优秀的程序员,十分优秀!