天天看點

MYSQL練習2

查找薪水漲幅超過15次的員工号emp_no以及其對應的漲幅次數t

CREATE TABLE `salaries` (
`emp_no` int() NOT NULL,
`salary` int() NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`))
           
SELECT emp_no, COUNT(emp_no) AS t FROM salaries GROUP BY emp_no HAVING t > ;
           

where 後不能接聚合函數,隻能在子查詢中

WHERE語句在GROUP BY語句之前;SQL會在分組之前計算WHERE語句。

HAVING語句在GROUP BY語句之後;SQL會在分組之後計算HAVING語句。

where 子句的作用是在對查詢結果進行分組前,将不符合where條件的行去掉,即在分組之前過濾資料,條件中不能包含聚組函數,使用where條件顯示特定的行。

having 子句的作用是篩選滿足條件的組,即在分組之後過濾資料,條件中經常包含聚組函數,使用having 條件顯示特定的組,也可以使用多個分組标準進行分組。

找出所有員工目前(to_date=’9999-01-01’)具體的薪水salary情況,對于相同的薪水隻顯示一次,并按照逆序顯示

DISTINCT去除重複資料

在單表的時候使用distinct,多表的時候使用group by

繼續閱讀