【发布时间】:2022-01-20 18:56:24
【问题描述】:
我需要每种类型的前 2 个口袋妖怪。 我有这个代码:
SELECT
[Name],
[Type 1],
Total,
rank() OVER(partition by [Type 1] order by Total,Hp,Attack,Defense,Speed,# desc) AS Ranking
FROM PokemonProject..Pokemon
结果表是这样的:
<table>
<thead>
<tr>
<th>Name </th>
<th>Type 1</th>
<th>Total </th>
<th>Ranking</th>
</tr>
</thead>
<tbody>
<tr>
<td>Xerneas</td>
<td>Fairy</td>
<td>680</td>
<td>1</td>
</tr>
<tr>
<td>Florges</td>
<td>Fairy</td>
<td>552</td>
<td>2</td>
</tr>
<tr>
<td>Ho-oh </td>
<td>Fire</td>
<td>680</td>
<td>1</td>
</tr>
<tr>
<td>CharizardMega Charizard X </td>
<td>Fire</td>
<td>634</td>
<td>2</td>
</tr>
<tr>
<td>CharizardMega Charizard Y </td>
<td>Fire</td>
<td>634</td>
<td>3</td>
</tr>
</tbody>
</table>
我知道我需要一个 WHERE 子句,但我不知道该怎么做。类似于“排名
【问题讨论】:
-
您使用的是 MySQL 还是 SQL-Server?
[]列名周围是 SQL-Server 语法。 -
你确定不是排名错字而不是排名?