计算在给定日期之前和之后存在的条目数

时间:2019-02-16 07:51:49

标签: mysql

鉴于我有一个带有“名称”和“日期”字段的简单表,有没有一种方法可以计算存在的条目数,其中相同名称字段在给定日期之前至少使用一次,至少在给定日期之后使用一次

例如,给定

[ name | date ]
Joe, 1/1
Billy, 1/1
Sam, 1/2
James, 1/3
Billy, 1/3

有没有办法问:“谁曾在1/2之前和1/2以后去过那里”

鉴于上表,Billy会进行这样的搜索,因为Billy在1/2之前(1/1上)和1/2后面(1/3上)都有一个条目。

请记住,数据库中的每个“条目”都只有一个日期字段。 (请原谅我使用的是错误的用语)

谢谢!

1 个答案:

答案 0 :(得分:0)

以下查询应回答“谁在1/2之前和1/2之后曾经去过那里?”的问题:

SELECT DISTINCT T1.name
FROM TABLE AS T1, TABLE AS T2
WHERE T1.date < 1/2 AND T2.date > 1/2 AND T1.name = T2.name

“ TABLE”应该是表的名称。请确保正确格式化我们正在比较的日期。 根据上面的查询,您应该能够计算行数-只需使用:

SELECT COUNT(DISTINCT T1.name)

相反。请注意,我假设名称是唯一的,因此表中不存在2个名称相同的人。