-
假設表名是 dept,select, from dept d,(select sum(salary),dm from dept group by dept) b 其中
通過這種方式,我們找到每個 ID 在該部門的工資比例,並得到乙個百分比。
-
應該是這個邏輯,兄弟,你看看。
declare @tab table(id int,name nvarchar(30),pic int)
insert into @tab
select 1,'a',1000
unionselect 2,'b',1500unionselect 3,'a',1500unionselect 4,'b',1500unionselect 5,'b',1200select id,,pic,pics,convert(float,(pic* from @tab a
left join
select name,sum(pic) as pics from @tab group by name)bon
-
SQL語句:
select [id],dm,salary,total,convert(nvarchar(10), salary*100)/total)+'%'作為表 A 左連線的薪酬比率
select [dm] ,sum([salary]) total from table group by dm) b on
table 是表名,total 是部門的總工資,其他是你已經擁有的資料。
-
首先,“檢查不同的職位”是什麼意思?
這意味著只能出現乙個相同的職位,例如,王萍和劉冰都是“助教”,所以只能顯示其中乙個; 還是說在查詢結果中,只能有一行“助教”,並且將王萍和劉冰疊加在一起?
首先,無論它意味著什麼,您的查詢結果都應該被重複資料刪除。 如果是前者,則根據某種規則顯示某個“tname”; 如果是後者,則需要疊加同一“prof”的“tname”。
程式是非常合乎邏輯的,如果你不清楚地表達它們,其他人將無法理解你的意思。
其次,在括號裡,你寫道,這是為了過濾掉教師表中“計算機系”和“電子工程系”的“教授”值相同的資料,即篩選出“助教”,即王萍和劉冰。
但是,如果你在括號裡寫上“prof not in”,那麼你的搜尋條件就會變成:“depart is 'computer science' and 'electronic engineering', and the same as prof is not displayed”。
所以王萍和劉冰沒有表現出來。 如果要查詢“助教”,則不能使用“不在”。
此外,你的**也是由羅里寫的。
你想勾選 prof,同乙個 PRIF 只能顯示一行,所以你可以直接查詢所有 prof,去重,然後根據一些規則顯示某個“tname”或疊加。
至於怎麼寫,就不用我教了。
-
為什麼要寫這樣乙個羅里漫無邊際的SQL
select distinct tname, prof from teacher where depart in ('電腦科學系', '電子工程系')
-
select * from teacher where prof in ('電腦科學系','點子工程系') and tno in (
select max(tno) from teacher where prof in ('電腦科學系','點子工程系'按教授分組)或。
select * from teacher where tno in (
select max(tno) from teacher where prof in ('電腦科學系','點子工程系') group by prof
乙個快乙個慢,自己分析一下。
在專案開發中,總是需要檢查後台執行的SQL語句,MySQL資料庫也不例外。 命令,可以通過輸出結果的字段說明來分析執行的SQL語句的型別,但不適合一般的初學者使用者,所以通過日誌檔案檢視SQL語句是最直接的方式。 >>>More