【发布时间】:2015-07-23 10:56:12
【问题描述】:
我在 SQL Server 2012 中工作。我有一个包含以下 2 列的表
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
th, td {
padding: 15px;
}
<table style="width:100%">
<tr>
<th>ID</th>
<th>Version</th>
</tr>
<tr>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td>1</td>
<td>3</td>
</tr>
<tr>
<td>2</td>
<td>0</td>
</tr>
<tr>
<td>2</td>
<td>1</td>
</tr>
<tr>
<td>2</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>0</td>
</tr>
<tr>
<td>3</td>
<td>1</td>
</tr>
</table>
我只想获取超过 2 个版本的 id,而不包括最新的 2 个版本(意味着 ID 1 有 4 个版本,我只需要提取最新的 2 个版本(3,2))。
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
th, td {
padding: 15px;
}
<table style="width:100%">
<tr>
<th>Id</th>
<th>Version</th>
</tr>
<tr>
<td>1</td>
<td>0</td>
</tr>
<tr><td>1</td>
<td>1</td></tr>
<tr><td>2</td>
<td>0</td></tr>
</table>
如何编写查询?我已经尝试过以下查询 select * from bitest where version not in
(
从最咬的版本中选择版本(
SELECT Max(版本)
FROM 比特斯特
按 ID 分组
拥有最大(版本)>= 2
))
并在
(
从 bitest where version in(
SELECT Max(版本)
FROM 比特斯特
按 ID 分组
拥有最大(版本)>= 2
)) 请更正查询以获得所需的结果
【问题讨论】:
-
我试过下面的查询,
标签: sql-server sql-server-2012