我想在其他列中添加多个计数器。 我在mysql数据库中有两行,并且我在第二列中有多个id,所以我想在其他列中添加1,2,3等计数器。
我的屏幕截图如下:
在图像中1889是两次,我希望这两个意味着所有重复值增加1。
预期产量: 1889 dell1 1889年dell2 1890年dell0 1891年dell0
1889年以上两次输出是1889 dell1,1889 dell2。 1890和191是单一的,因此dell后面的输出为0。
所以我希望在dell后面增加1。
如果有人知道mysql查询,请通知我。
答案 0 :(得分:0)
你在这里提到它的问题是按分区排名的一个例子。 Oracle有内置函数来获取这样的输出,但是MySQL并没有这样的东西。
select result.YEAR, CONCAT(result.NAME,'',result.rank) from (
SELECT name,
year,
IF(year=@last,@curRank:=@curRank+1,@curRank:=0) AS rank,
@_sequence:=@_sequence+1,
@last:=year
FROM COMPUTER , (SELECT @curRank := 1, @_sequence:=1, @last:=0) r
ORDER BY year asc) as result;
您可以参考fiddle here
我已经从另一个answer here参考了。