【352天】我爱刷题系列111(2018.01.23)
生活随笔
收集整理的這篇文章主要介紹了
【352天】我爱刷题系列111(2018.01.23)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
@(一只心中無碼的程序員)專欄
叨叨兩句
SQL習題006
查找薪水漲幅超過15次的員工號emp_no以及其對應的漲幅次數t
CREATE TABLE salaries (
emp_no int(11) NOT NULL,
salary int(11) NOT NULL,
from_date date NOT NULL,
to_date date NOT NULL,
PRIMARY KEY (emp_no,from_date));
此題應注意以下四點: 1、用COUNT()函數和GROUP BY語句可以統計同一emp_no值的記錄條數 2、根據題意,輸出的漲幅次數為t,故用AS語句將COUNT(emp_no)的值轉換為t 3、由于WHERE后不可跟COUNT()函數,故用HAVING語句來限定t>15的條件 4、最后存在一個理解誤區,漲幅超過15次,salaries中相應的記錄數應該超過16(從第2條記錄開始算作第1次漲幅),不過題目為了簡單起見,將第1條記錄當作第1次漲幅,所以令t>15即可 /** 注意: 嚴格來說,下一條salary高于本條才算漲幅,但本題只要出現了一條記錄就算一次漲幅,salary相同可以理解為漲幅為0,salary變少理解為漲幅為負 **/ 1 2 SELECT emp_no, COUNT(emp_no) AS t FROM salaries GROUP BY emp_no HAVING t > 15
總結
以上是生活随笔為你收集整理的【352天】我爱刷题系列111(2018.01.23)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 嵌入式tomcat例子
- 下一篇: Opencv中的阈值函数