一、使用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、在查询结果中,商品表和促销表中所有参与促销的商品的名称被合并成了一个结果。