以上的数据要求实现为下图的样子:
意思就是如果name相同的两个人(张三)或者多个人,就给他加一个标识列1,2,3,4,5.......
而只有一个的(李四)就是自增为1,名称出现多次就加几次,求大神给个SQL语句,只能用SQL来实现
------解决思路----------------------
--如果没有新增列就添加一下
ALTER TABLE TB ADD 新加列 INT
;WITH CTE AS(
SELECT 新加列,ROW_NUMBER()OVER(PARTITION BY name ORDER BY sex)RN
FROM TB
)
UPDATE CTE
SET 新加列=RN
------解决思路----------------------
row_number 取出列的序列号,partition by 列名 根据 列名进行分组,2楼正解