我有下表
ID姓名CodSituation
1 John 1
2 Mary 2
3 Mary 3
4 Mary 4
5 John 5
6 John 2
7 Mary 1
我想为他们的最后一个条目是CodSituation = 2的所有用户选择名称,ID和CodSituation
在这些结果中,我将获得id 6作为Mary的最后一个条目是CodeSituation = 4如果不止一个用户有他们最新的CodSituation = 2我也想要它们.
[最终编辑]在看到本回答结尾处发布的内容后,我发现用户提出了错误的问题:
他们问的是"告诉我每个拥有CodSituation = 2"的人,当他们的意思是"向我展示最后一个在CodSituation字段中输入的用户= 2"
这是正确的查询:
select a.ID, a.Name, a.CodSituation
from table_name a
inner join (
select Name, max(ID) as MaxID
from table_name
group by Name
) b on a.Name = b.Name and a.ID = b.MaxID
where a.CodSituation = 2;
Run Code Online (Sandbox Code Playgroud)
这是小提琴:http://sqlfiddle.com/#!2/ a731d [END]
[这里是以前的查询,供参考]看起来像你只需要:
select * from table_name where CodSituation=2
Run Code Online (Sandbox Code Playgroud)
让所有有情况的人2
要使用mysql只获取最后一个条目:
select * from table_name where CodSituation=2 order by id desc limit 1
Run Code Online (Sandbox Code Playgroud)
要使用sql-server获取最后一个条目:
select top 1 * from table_name where CodSituation=2 order by ID desc;
Run Code Online (Sandbox Code Playgroud)
在这里查看一个工作示例:
http://sqlfiddle.com/#!6/022fb/4
[编辑]
OP提供了一个实际的数据集:
select Name from table_name where CodSituation=2 group by Name;
Run Code Online (Sandbox Code Playgroud)
这显示所有CodSituation为2的独特用户(每人一个条目)
http://sqlfiddle.com/#!3/be404/2
| 归档时间: |
|
| 查看次数: |
2850 次 |
| 最近记录: |