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