这个问题在这里已经有答案了:
sql仅选择列上具有最大值的行[重复](27个答案)
两年前关门了。
我的mysql数据库中有以下表格: USERS
```
ID | login
1 | user1
2 | user2
3 | user3`STATUS`
ID | userID | date | status
1 | 1 | 2018-05-10 10:00:00 | a
2 | 2 | 2018-05-15 10:00:00 | a
3 | 3 | 2018-05-20 10:00:00 | a
4 | 3 | 2018-05-20 11:00:00 | d
5 | 1 | 2018-05-15 11:00:00 | d
6 | 3 | 2018-05-25 10:00:00 | a
如何查询 `STATUS` 表以仅获取包含最新 `date` 柱在哪里 `status` 等于 `a` 没有重复 `userID` ?
在这种情况下,我希望查询返回以下行:
userID | date | status
2 | 2018-05-15 10:00:00 | a
3 | 2018-05-25 10:00:00 | a
2条答案
按热度按时间ct3nt3jp1#
您可以尝试以下方法:
上面我创建了一个表
max(date)
每UserID
. 我们可以使用inner join
我们确保结果仅为最新日期行。我们使用where
子句来仅筛选具有Status = 'a'
您可以在这里使用sql fiddle中的查询jhdbpxl92#
你可以随心所欲
INTEVRAL n DAY
关于你要查多少天。