千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > sqlserver去重的几种方法

sqlserver去重的几种方法

来源:千锋教育
发布人:xqq
时间: 2023-11-24 13:33:19 1700803999

一、使用DISTINCT关键字

1、DISTINCT关键字用于SELECT语句中,可以去掉查询结果中重复的记录。

2、例如,我们有一个员工表,要查询其中所有不同的职位:

SELECT DISTINCT job_title FROM employee;

3、使用DISTINCT关键字,在查询结果中会去除重复的职位。

二、使用GROUP BY语句

1、GROUP BY语句可以分组聚合查询结果。

2、例如,我们有一个销售记录表,要查询每个商品的销售数量和销售金额:

SELECT product_name, SUM(quantity_sold), SUM(selling_price)
FROM sales_records
GROUP BY product_name;

3、在查询结果中,每个商品的记录合并成了一个,去除了重复的商品。

三、使用ROW_NUMBER()函数

1、ROW_NUMBER()函数可以按照指定的条件对查询结果进行编号。

2、例如,我们有一个成绩表,要查询按照班级和科目排名前三的学生:

SELECT class, subject, student_name, score
FROM (
    SELECT class, subject, student_name, score,
    ROW_NUMBER() OVER (PARTITION BY class, subject ORDER BY score DESC) AS rn
    FROM score_table
) AS A
WHERE rn <= 3;

3、在查询结果中,每个班级科目的前三名学生的记录被筛选出来。

四、使用EXISTS子查询

1、EXISTS子查询可以用于筛选满足特定条件的记录。

2、例如,我们有一个客户和订单表,要查询有购买记录的客户姓名:

SELECT customer_name
FROM customer_table
WHERE EXISTS (
    SELECT *
    FROM order_table
    WHERE customer_table.customer_id = order_table.customer_id
);

3、在查询结果中,只有有购买记录的客户的姓名被筛选出来。

五、使用UNION运算符

1、UNION运算符可以将多个查询结果合并。

2、例如,我们有一个商品表和促销表,要查询参与促销的商品名称:

SELECT product_name
FROM product_table
WHERE product_id IN (
    SELECT product_id
    FROM promotion_table
)
UNION
SELECT product_name
FROM promotion_table
WHERE product_id IN (
    SELECT product_id
    FROM product_table
);

3、在查询结果中,商品表和促销表中所有参与促销的商品的名称被合并成了一个结果。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT