【发布时间】:2015-01-24 06:52:44
【问题描述】:
我有一个数据库,其中包含有关访问我们辅导中心的学生的信息。每次学生访问时都会生成一份记录,其中包括他们的姓名、学生编号、访问日期、他们在那里的时间以及他们在那里的时间。
我们为每个术语创建新表
我被要求准确计算某个学期有多少学生,所以我运行以下命令。
SELECT * FROM `tutoringdata_201350` group by `anum`
anum 是学生的唯一标识号,它返回 5525 条记录中的 524 条结果。理论上这应该是我的不重复计数。
然后我被要求在同一个表中获取某个日期之前和之后的记录,所以我运行了。
SELECT * FROM `tutoringdata_201350` WHERE `cDate` <= "09/30/2013" group by `anum`
哪个有效,就日期而言,如果我按数字排序,则没有重复的人被返回,因为我可以在结果窗口中看到它们都是唯一的。但是返回的结果总数是 375
所以为了让学生在那之后我跑
SELECT * FROM `tutoringdata_201350` WHERE `cDate` > "09/30/2013" group by `anum`
这似乎也有效,返回的结果中没有重复的学生,但返回的结果总数为 428。
375 + 428 是 803 而不是我期望的 524。我在遵循逻辑时遇到了麻烦,这两种不同类型的查询中的哪一种产生的结果数量不准确。
【问题讨论】:
标签: mysql