MSSQL如何准确合并重复数据(mssql 合并重复数据)
当使用MSSQL操作数据时,会遇到重复数据的出现, 准确合并重复的数据是数据操作的重点难点,一般情况下,我们可以使用Group by这种功能来实现合并重复数据,但是在实际操作中,可能会碰到数据偏差,为解决这种问题, 我们可以使用行数据分析函数ROW_NUMBER() 来准确合并重复数据,该函数可以应用在聚合函数,它将输出在聚合的基础数据行中的行号。
下面用一个例子来说明如何使用ROW_NUMBER()函数准确合并重复数据:
首先,需要创建一个如下表来存储数据:
“`sql
CREATE TABLE if NOT EXISTS persons(
id int NOT NULL,
name VARCHAR(50) NOT NULL,
marks int
);
然后,我们插入几行测试数据:```sql
INSERT INTO persons(id, name, marks)VALUES
(1, 'A', 55),(2, 'B', 55),
(3, 'C', 95);
接下来,我们就可以通过如下语句来准确地合并重复数据:
“`sql
SELECT
marks,
COUNT(*) AS num
FROM
(SELECT
marks,
ROW_NUMBER() OVER(PARTITION BY marks ORDER BY marks) AS rowNum
FROM persons) P
GROUP BY marks;
在上面的查询中,在结果集中会制定每种 marks 的值,并计算每种 marks 的重复数量,如下所示:
|marks|num||:--|:--|
|55|2||95|1|
通过ROW_NUMBER()函数,我们可以准确的合并重复的数据,而不会失真。