在T-SQL中,使用GROUP BY子句可以将结果集按照一个或多个列进行分组,并对每个组应用聚合函数,如COUNT、SUM、AVG、MIN、MAX等。
使用WITH子句可以将一个查询结果集作为一个临时表,在后续的查询中使用。
使用UNION可以将多个查询结果集合并成一个结果集,并删除重复的行。
例如,假设有一个名为“orders”的表,其中包含订单信息,包括订单号、客户ID、订单日期、订单金额等列。现在需要计算每个客户的订单总金额,并按照订单总金额从高到低排序,可以使用以下查询语句:
WITH order_totals AS (
SELECT customer_id, SUM(order_amount) AS total_amount
FROM orders
GROUP BY customer_id
)
SELECT customer_id, total_amount
FROM order_totals
ORDER BY total_amount DESC
在这个查询中,首先使用WITH子句创建了一个名为“order_totals”的临时表,其中包含每个客户的订单总金额。然后,在主查询中,从临时表中选择客户ID和订单总金额,并按照订单总金额从高到低排序。
如果需要将多个查询结果集合并成一个结果集,并删除重复的行,可以使用UNION子句。例如,假设有两个表“employees”和“contractors”,其中包含员工和承包商的信息,包括姓名、职位、薪水等列。现在需要计算公司的总支出,可以使用以下查询语句:
SELECT SUM(salary) AS total_expense
FROM (
SELECT salary FROM employees
UNION
SELECT salary FROM contractors
) AS combined_salaries
在这个查询中,首先使用UNION子句将“employees”表和“contractors”表中的薪水列合并成一个结果集,并删除重复的行。然后,在主查询中,使用SUM聚合函数计算结果集中所有薪水的总和,并将其命名为“total_expense”。
领取专属 10元无门槛券
手把手带您无忧上云