一道一直沒弄明白的sql 有關group

2022-06-18 15:12:16 字數 1341 閱讀 7572

我的答案:

我的想法就是先把錶按照emp_no給合併起來,然後對這個新錶t進行篩選最大的工資並且按照部門分組。

select t.dept_no,t.emp_no,max(t.salary) as maxsalary from

(select d.dept_no,d.emp_no,s.salary from

dept_emp d

inner

join salaries s on d.emp_no=

s.emp_no

where d.to_date=

'9999-01-01

'and s.to_date=

'9999-01-01

') t

group

byt.dept_no

order

byt.dept_no

可以通過的答案:

select

a.dept_no,b.emp_no,a.salary

from

(select dept_no,max(salary) as

salary

from

salaries

inner

join

dept_emp

on dept_emp.emp_no=

salaries.emp_no

where dept_emp.to_date =

'9999-01-01

'and salaries.to_date=

'9999-01-01

'group

by dept_no) as

ainner

join

(select

dept_no,dept_emp.emp_no,salary

from

dept_emp

inner

join

salaries

on dept_emp.emp_no=

salaries.emp_no

where dept_emp.to_date =

'9999-01-01

'and salaries.to_date=

'9999-01-01

')as

bon a.salary=

b.salary

and a.dept_no=

b.dept_no

order

by dept_no

然後主要原因是:mysql select中只能使用group中用過的字段

否則按我原來的做法maxsala和emp——no是不一定對應的!

昨天沒做出來的一道題目,不難,但是一直出現段錯誤

則這個是仿照strcmp 功能實現的代表,剛開始,格式和型別都不是很熟練,但是功能實現了。從昨晚到今天早上,一直出現錯誤。早上來這邊上課之後,我把之前剛開始的條件判斷,判斷他的截止字元時,把這一塊刪除之後,程式反而可以成功執行了。我覺得應該是我在條件給的重複了,所以會有這種錯誤。下面是程式 incl...

一直沒很注意的log4j

如果要乙個系統出多個log檔案,每個出相應的模組.根路徑下的所有logger輸出都會受到影響,但是優先順序最低,可以被任意特定的包設定覆蓋。所以這裡的a2會被覆蓋 root下的是所有的資訊都會輸入到後邊的 紅色 路徑下 程式裡我這樣寫 static logger logger logger.getl...

一道SQL查詢的題目

一是查詢a id,name 表中第31至40條記錄,id作為主鍵可能是不是連續增長的列,完整的查詢語句如下 select top 10 from a where id select max id from select top 30 id from a order by a t order by a...