按日期选择最后7天的记录,然后避免使用特定列的重复
我很确定我面临的问题很小,但是我不知道怎么了。
我的SQL中有下表:
+-----+------------------+---------------------+
| ID | EMAIL | VISIT |
+-----+------------------+---------------------+
| 1 | [email protected] | 2021-04-01,13:20:23 |
| 2 | [email protected] | 2021-04-03,12:03:44 |
| 3 | [email protected] | 2021-04-04,13:21:12 |
| 4 | [email protected] | 2021-04-06,09:34:31 |
| 5 | [email protected] | 2021-04-07,11:20:22 |
+-----+------------------+---------------------+
我想显示最后7天的记录,但按最新日期订购,并且仅显示每本电子邮件的最新记录,就像这样
+-----+------------------+---------------------+
| ID | EMAIL | VISIT |
+-----+------------------+---------------------+
| 3 | [email protected] | 2021-04-04,13:21:12 |
| 4 | [email protected] | 2021-04-06,09:34:31 |
| 5 | [email protected] | 2021-04-07,11:20:22 |
+-----+------------------+---------------------+
我尝试了此查询来实现这一目标:
尝试1:选择 *从表中访问(现在() - 间隔7天)和(通过电子邮件订单)访问desc
尝试2:从表中访问(现在访问)(现在) () - 间隔7天)和NOW()订单访问desc
结果正确显示,但以奇怪的顺序显示。 如果我按子句放弃小组,它将正确显示,但还包括电子邮件列的重复项。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
尝试将 MAX 与 group by 一起使用
try using MAX with group by
我向您建议此代码:
I suggest this code to you:
您可以添加一个子查询以编号每个组中的行,然后从每个组中的第一个行中选择:
You can add a subquery to number the rows within each group, then select from this subquery only the first rows in each group: