【发布时间】:2017-09-01 13:50:05
【问题描述】:
假设我有一个包含 0:many 时间事件的人的数据库。
PERSON TABLE:
ID Person
-- ------
1 Patrick
2 Sandy
EVENT TABLE:
ID Event
-- -----
1 blow bubbles
2 visit SpongeBob
3 eat at the Krusty Krab
PERSON EVENT TABLE:
Person_ID Event_ID Date
1 3 2017-05-05
1 3 2017-05-09
1 2 2017-05-10
2 1 2017-05-04
2 3 2017-05-15
我对如何进行这样的查询很感兴趣:
找出所有在 3 天内在 Krusty Krab 吃过饭的人 拜访海绵宝宝。
找到所有曾经吹过泡泡,然后访问过海绵宝宝的人,然后 以特定顺序再次吹泡泡(其他干预事件 没问题)。
找到所有曾经吹过泡泡,然后访问过海绵宝宝的人,然后 以特定顺序再次吹泡泡(其他干预事件 不行)。
找出所有曾经在 Krusty Krab 吃过至少 5 次的人 7天。
这种类型的查询有名称吗?是否有用于处理此类查询的通用 SQL 策略?我对如何快速进行此类查询特别感兴趣。是否有任何专门的数据库或索引可以帮助提高此类查询的性能?
【问题讨论】:
-
看起来像家庭作业或类似的。向我们展示您的尝试 - 添加预期结果以及您的不同查询尝试。同时标记您正在使用的 dbms。
-
你必须说“馄饨,馄饨,把奎里奥利给我。”另外,请提供您尝试过的方法。
-
同意前面的 cmets,如果他正在寻找如何编写这些查询。 不同意,如果他试图理解这些类型的查询——这就是我对这个问题的理解。
-
查询示例不需要 SQL 代码,只需回答我的问题。我处理医院数据,我们经常有兴趣寻找具有特定程序/诊断顺序的患者。我知道如何在代码中进行这些比较,但需要一种更省时的方法,老实说不知道从哪里开始。
标签: sql sql-server mongodb indexing sequence