2. select top 3 percent employee.salary from employee; select top 3 with ties employee.salary from employee order by employee.salary; percent 是百分比的意思,整句是選前百分之 3 的資料; 若是沒有放 percent 的話,意思是選前 3 筆資料 整句是選前百分之 3 的資料, 第一筆資料 6000 , 第二筆資料 5700 , 第三筆資料 5500 , 第四筆資料 5500 的話, 那麼第四筆資料也會被選出來 Order by 排序, 將員工的薪水從小排到大
3. select employee.* from employee where employee.sex='M' and employee.address like '%TX%' order by employee.dnumber desc , employee.salary desc 題目: 選出男性員工,且地址有 TX 的, 然後依照 dnumber 由大到小去排序, 若是 dnumber 相同,則依照 salary 去做第二次的排序 先依照 dnumber 由大到小去排序, 若 dnumber 相同,則依 salary 去由大到小排序 選出員工性別是男性的 選出 address 和 TX 有相同的, % 可以沒有字元,也可以很多字元
4. select count(*) from employee; select min(employee.salary) from employee; select count(employee.sex) from employee; select count( distinct employee.sex) from employee; 計算出員工全部欄位,有幾筆資料 選出 salary 欄位最少的 計算出員工 sex 欄位,有幾筆資料 計算出員工 sex 欄位,有幾種不同的 sex
5. select + 欄位 from + 表格 Where + 條件 group by + 群組欄位 Having + 群組條件 order by + 欄位
6. select dnumber, count(*) as 部門人數 from employee group by dnumber; 選出 dnumber ,並計算出該 dnumer 有多少人 ? 將 dnumber 分成群組 由右圖可以看出 dnumber 分成三群 下圖是答案 試著練習看看:下面這幾行在講什麼 ? select dnumber, min(year(getdate())-year(employee.bdate)) from employee group by dnumber;
7. select employee.ssn, sum(work_on.hours) as ' 總共工作時數 ' from employee,work_on where employee.ssn = work_on.ssn group by employee.ssn order by sum(work_on.hours) 在 select 有選擇到的欄位, group by 都要寫到, 除了計算的欄位 ( 例如: sum 或 count) 為什麼要這樣做的原因,仍需要去問老師喔
8. select employee.ssn, employee.lname+', '+employee.minit+'. '+employee.fname as 'name', sum(work_on.hours) as ' 總共工作時數 ' from employee,work_on where employee.ssn = work_on.ssn group by employee.ssn, employee.lname+', '+employee.minit+'. '+employee.fname order by sum(work_on.hours) 在 select 有選擇到的欄位, group by 都要寫到, 除了計算的欄位 ( 例如: sum 或 count) 為什麼要這樣做的原因,仍需要去問老師喔