我有一个包含这些数据的表格:
Id City Amount
1 London 25000
2 New York 20000
3 London 23000
4 Paris 22000
5 Moscow 18000
6 London 21000
7 New York 19000
8 Moscow 26000
9 London 24000
10 Moscow 16000
11 London 15000
12 Moscow 23000
13 Paris 19000
14 New York 15000
15 London 26000
我必须创建sql作为什么来得到这样的结果?
Id City Amount
1 London 25000
2 New York 20000
3 London 23000
4 Paris 22000
5 Moscow 18000
7 New York 19000
8 Moscow 26000
13 Paris 19000
这意味着我只想得到一个城市最多只出现2次。
我只想拿到前两张或者后两张
谢谢!
1条答案
按热度按时间sigwle7e1#
如果您的mysql版本<8.0,您可以模拟
RowNumber
功能,使用会话变量。实现Partition By
基于分组的功能,我们将使用两个会话变量,一个用于行号,另一个用于存储旧的City
将其与当前值进行比较,如果属于同一个值,则将其递增1City
组,否则重置为1。下面的代码将获取前两条记录。通过在查询中将2更改为n,可以很容易地将其更改为获取前n条记录。
**
sql小提琴
**