實驗3.2 複雜的單表查詢
一、實驗目的
熟練掌握SELECT查詢語句中的Group by 子句、Having子句的用法,以及彙總函式的使用。
二、實驗原理
在查詢語句中用Group by子句進行分組;
用Having子句對分組進行篩選。
使用MAX(),MIN(),COUNT(),SUM(),AVG()等函式在查詢結果集中生成彙總值。
三、實驗裝置
安裝有SQL SERVER 2000的計算機。
四、實驗示例
1、統計表中員工的薪水在4000-6000之間的人數
select *from employee
where salarybetween 4000 and 6000;
2、計算'P0001'產品的平均銷售單價
select AVG(unit_price
from sale_item
where prod_id='P0001';
3、 找出目前銷售業績超過40000元的業務員編號及銷售業績,並按銷售業績從大到小排序。
Select sale_id,sum(tot_amt)
From sales
Group bysale_id
Having sum(tot_amt)>4000
Order by sum(tot_amt)desc
4、查詢訂購了三種以上產品的訂單號。
Select order_no
From sale_item
Group byorder_no
Having count(prod_id)>3
五、實驗內容
1. 在員工表employee中統計員工人數。
Select count(*)
From employee
2. 統計各部門員工的員工人數及平均薪水。
Select dept,count(emp_no),AVG(salary)
from employee
group by dept;
3. 查詢銷售業績超過10000元的員工編號。
select emp_no
from employee
where salary>10000;
4. 計算每一產品銷售數量總和與平均銷售單價。
Select prod_id,sum(qty),AVG(unit_price)
from sale_item
group byprod_id
5. 計算出一共銷售了幾種產品。
Select count(prod_id)
From sale_item
Group by order_no
6. 顯示sale_item表中每種產品的訂購金額總和,並且依據銷售金額由大到小排列來顯示出每一種產品的排行榜。
Select prod_id, sum(qty* unit_price)
From sale_item
Group byprod_id
Order by prod_id
7. 計算每一產品每月的銷售金額總和,並將結果按銷售(月份,產品編號)排序。
Select prod_id,sum(qty*unit_price),Year(order_date),month(order_date)
From sale_item
Group byprod_id ,Year(order_date),month(order_date)
Order by prod_id,Year(order_date),month(order_date)desc
8. 查詢每位業務員各個月的業績,並按業務員編號、月份降序排序。
Select sale_id,sum(tot_amt),Year(order_date),month(order_date)
From sales
Group bysale_id ,Year(order_date),month(order_date)
Order bysale_id ,Year(order_date),month(order_date)desc