#軟體工程師面試 #文長慎入
面試問題好像一直以來都是一個很多人關切的環節,在各大版上也一直有人會詢問。因為之前有幫公司面試一些人,還有加上從朋友那邊搜刮來的經驗,概括分享一下。
這邊感覺可以分成幾個部分:
1. 面試的題目是否都是演算法相關題目?
2. 是為什麼實際工作內容通常都和面試考的沒有相關?
3. 我現在學的東西對找工作是否有幫助?
4. 公司招募看的到底是這個人的學經歷,能力,個性,還是什麼,為什麼有些人很感覺很厲害卻一直無法拿到offer?
其實用FB排版不太容易,但因為懶得登入部落格,想說快速地打一打,所以也請各位見諒。
#面試的題目是否都是演算法相關題目
如果是投FANG之類的,Facebook Amazon, Neflix, Google (沒記錯應該是這幾間),反正就是這些有名的大廠,除了Netflix目前沒有遇到認識的聊過,其他都是考演算法沒錯。
當然也不只有會考演算法,根據你申請的職缺,可能也會加考一些其他的東西。
那其公司是怎樣呢?其實還是有很多公司會考演算法相關的,尤其是線上面試。
雖然在疫情下全都是線上,但一般來說,還是會有分兩種,一種是沒有真人的狀況下,就是給你像是HackRank這種網站,你點開可能有六十分鐘讓你做兩題。
做完以後你提交,你也不會知道你的分數跟分析結果之類的,看公司怎麼做設定,而且除了演算法相關題目,也可以設定選擇題之類的。
另一種就是真人面試,通常電腦自動面完以後,你可能會跟真人線上面試,真人也是會給你類似所謂的白板題,就是出一個題目讓你現場解題,然後中間可能有的會要你跟他討論,當然看面試官拉!
比較加分的還是,你編寫的時候可以邊闡述自己的想法,而不是低頭默默寫完,這樣也是有點尷尬。如果你編寫邊闡述的話,或者是少有點互動,也是展現你的溝通能力以及你對於題目的掌握能力,就像是你看到一個很簡單的題目 (2+3)*5 之類的,你可以很有自信的說,喔因為2+3在括弧裡面,所以要先算,然後再乘以5,展現底是真的有理解,而不是就是背題目之類的。
有些公司也可能是給你回家作業,叫你做一個小專案之類的,看你應徵的職缺,可能是叫你做一個UI 或者叫你建一個API 也可能叫你做一整個比較完整的東西出來。如果你是面試架構師的話,可能會叫你建一個架構,或設計一個架構出來。
然後也有的公司(像我們公司)就是需要pair programming 所以在線上面試的階段就是會有,真人跟你一起寫程式這樣。
#為什麼實際工作內容通常都和面試考的沒有相關
這個部分一直以來都是一個難解的謎題。像是Google Facebook這種大公司其實不難理解,畢竟他們是比較類似General 的招募,不是一開始就決定好你就是要去某個Team然後永遠讓你待在那個Team。就他們招募的是他們覺得,有潛力的人才,這樣不管需要做什麼都可以自由移動他們,給他們training就可以變得很好用。加上他們一次招募的數量也是相當龐大,考演算法相關的話,可以快速篩選,也更有機會找到他們需要的人才。
因為像是Facebook或Google這種有自己開發框架,開發技術的公司,他們的確有很多時候需要寫演算法或者系統優化的工作。
那像是普通的中小企業或新創,說真的,其實就是跟風。因為覺得人家Google Facebook都是這樣找到優秀人才,那我們也要依樣畫葫蘆,這樣鐵定也能找到厲害的人。
可是這樣找到的人進去以後,發現公司好像也是不知道在幹嘛,最後可能也會待不下去。所以這個部分,近年來也越來越多公司開始改進,開始思考什麼樣的招募流程最適合自己公司。
像是pair programming也開始成為近年來的一個流行的面試,有的公司並不是真的pair 但就是你要跟他們一起工作,了解他們公司的文化,或者跟他們的工程師進行一些深度討論。或者會問你說,假設給你設計一個系統,你要怎麼做之類的。
當然,面試問題跟流程都是每間公司各有不同,不是說你現在準備一種就萬無一失。所以說最好還是盡可能的,提升自己的基礎能力。
如果真的就是打算以FANG為目標的話,就可以從刷題開始,像是Leetcode, Hackrank, codewars之類的都不錯。之前有看到一篇文章,他刷了幾百題,而且每題刷了三次以上,真的很有毅力。刷題的重點就是在於熟練那些題目,可是也不要硬背,你練習是要練那個速度感。可是該理解的還是要理解。
因為你進公司以後,你還是需要使用那些東西來工作,不是只是為了刷題而刷題,而且面試官可能也會考你變形題之類的,或者問你一些記憶體相關的問題,或者是系統設計的問題,或者單純想知道,你是怎麼想出解法的,所以硬背題目跟答案其實也是不太行。
目前我的了解是,大部分中小型企業或者新創,很多時候你學習新東西的能力是比演算法更重要的,尤其是新創你什麼都要會,假設公司是剛起步的新創,你就要變成公司主要的技術專家,什麼東西不太會也要馬上現學現賣,也不要期望公司可能會給你什麼Training 或者有人給你依靠,可能同事還要依靠你。
中型或者普通大型企業,假設公司已經有產品的話,大部分的時候可能是既有產品維護,除非你剛好很幸運地在新產品開發的Team,這樣就有機會學到很多東西,不然維護的話,很多時候只是在了解產品本身是否有Bug,改善code品質之類,也要看公司是否有想花成本在維護上面。如果公司就是打算一個產品,改一點東西就繼續賣錢,那樣好像也不太需要一直去migrate 或者搞新東西上去。
如果你剛好很幸運在獨角獸新創,那你不但可以學到很多東西,還可以用最新科技,可能還有機會遇到大神帶你。
所以說選公司其實也是有點重要,面試的時候,可以問問他們說,那你平常的daily work是怎麼樣的,公司有沒有走敏捷開發,公司有沒有用雲端,公司一個Team的規模之類,以及公司會不會提供訓練。
#我現在學的東西對找工作是否有幫助
其實這個就要看你的未來三年五年十年規劃。
假設你就是都在寫前端,你也覺得我要寫前端寫一輩子,那好像就可以繼續一直focus在前端。如果你擔心自己會丟飯碗,是不是要學點後端,其實也是可以學,可是學了以後,你打算學得多專精?後端的東西也是會一直更新,一直進步。可能Restful API 也可能不是,DB也有好多種DB, 後端語言也很多種,所以你是想要學個大概,還是是希望,後端也問題的時候,自己可以去看code也看得懂?
前一個專案,公司有一個前端,他就是因為自己做的ticket幾乎都會碰到後端,就乾脆把整個後端也寫一寫,就變成fullstack,雖然他主要還是算前端。但也因為是.NET 所以前端跟後端可能沒有太明顯的分界,至少我相信他本來就會寫.NET了,因為幾乎有一半以上的controller都是他寫的。
如果你是寫react SPA,就是跟後端完全分開,你就只要寫到send http request 那邊的話,那好像也不太需要去了解到後端的架構,就是大概知道後端的endpoint 長什麼樣子就好,他們需要提供的文件就是需要提供。
如果說你是怕以後失業,怕公司可能覺得請全端比較划算,那的確還是多學一點好,反正多學也是投資自己。還能順便展現自己的上進心以及學習能力。
以consultancy來說好了,感覺是什麼都要學,像是公司可能就會說,啊最近我們的客人都要求要會什麼什麼,那你就趕快學一下。當然公司也不是很壞心的就叫你要馬上學會,公司最近也是有開始提供一大堆Training 之類的,還給你錢讓你去考一些證照。
目前我使用的語言主要還是Javascript 和 C#這樣,然後公司有希望我可以好好學學Java。其實也不是不會寫Java,如果有發漏我其他文章的話就知道,其實我最一開始學的時候,第一個語言就是Java。
在台大資訊系統訓練班的時候,我就上了Java和PHP的課程,為自己來英國念研究所做準備,一年的master course也都是Java 跟PHP為主,然後有用了一點Python這樣。可是工作以後就只有使用C#和Javascript 而已,所以說,學校學了也不一定會用到。
很多東西都是工作以後才學的,然後Python是平常自己刷題的時候會用,因為覺得不錯用。
其他的話,我覺得雲端相關的東西滿實用的,像是AWS或Azure 或GCP 有機會的話是可以自己摸摸。我自己是滿幸運的在工作上一直都有用到雲端產品,主要是AWS,前一個專案有用Azure 這樣。
DB的話,就是SQL和NoSQL可以個學一個,應該就滿好用的了,目前最流行的應該就是PostgreSQL和MongoDB 。如果對於Graphic Database有興趣也可以稍微看一下像是Neo4J之類的吧!
前端框架的話,就是React, Angular, Vue.js選一個吧!學會一個以後再去學其他的也不難,這三個我是剛好工作上都有用到,我自己是覺得Vue和React應該是比較好上手的,入門門檻比較低,Angular就一定要寫Typescript.
後端框架的話,看你用什麼語言,Java就學spring boot,
C#就是.NET,JS的話應該是Express,Python就Django,PHP就Laravel 。
Mobile的話我沒有寫過也不知道。
如果是平常想要補充知識的話,可以多念一些像是security 相關的東西,或者是Oauth那類的,也可以看一下架構之類的。像是Microservices, microfrontend, Domain Driven Development 這些概念性的東西。
也可以看一些像是Clean Code相關的書,怎樣重構原本的爛Code或者TDD相關的書。
反正前一篇文章就說了,這個職業就是要一直學,活到老學到老,如果打算做到老的話。
#公司招募看的到底是這個人的什麼
其實每個公司應該都不太相同。有的公司就是要招募他們覺得最聰明的人,所以就是一直問你一些很難的東西。或者就是只要找那種名校出來的人,最好有什麼數學物理奧林匹亞的。
有些公司看的是你的個性,符不符合公司文化,或者同事喜不喜歡你之類的。
有些公司就是很缺人,看你能不能馬上上工之類的。能的話就馬上錄取你之類。但通常那個可能是很雷的缺,例如公司找人找很久都找不到,終於看到一線希望。然後為什麼找不到人,可能是薪水開的偏低,或者公司名聲不好,上Glassdoor就可以查看公司的評價。也可能是職缺本身很雷,例如看起來就是個打雜缺。或者是前人都做不久就離開,所以需要一直找人。
有些公司是看你寫的code 例如看你的code乾不乾淨,可能你寫出來的code都很乾淨,設計也很好,思路也很清晰,他們就會錄取你。
有些公司看的是你有沒有某些特定的經驗,例如公司開那個缺剛好就是要找有AWS經驗的人,所以可能就是會錄取他們覺得AWS經驗比較多的人。或者是剛好想找之前有做過Serverless架構的人,或者是有碰過Kubernetes的人,這個時候真的就是靠經驗了。
也有的公司就是,他們也懶得找人,HR給他們面試的第一個人就會錄取,這個完全靠運氣。這件事情真的發生在我第一間公司的另外一個Team,主管非常不喜歡面試人,也覺得我工作都沒時間還要面試。所以就是隨便問問之類的,然後就跟HR說好。
--------------------------------------
以上就是我目前經歷過以及別人分享給我的經驗。我覺得面試的話,運氣真的也是佔滿大的比例,尤其是遇到像第一間公司那種狀況的。
當然年輕的時候可能會比較急躁,也很擔心自己找不到工作,考量到的還有金錢跟公司名聲,所以學不學得到東西也可能是其次。
選offer的時候,也可能就是可以分析一下,自己想要的到底是什麼,是金錢,是做得開心,還是想要可以做的久(這個也要看公司可以活多久),除了看Glassdoor也可以上網看一下公司財報。
最近的疫情衝擊下,有很多新創或中小企業也開始裁員跟減薪,所以公司平常的財務狀況和經營方針也是很重要的。即使公司可能一直都有收入,也可能因為現金管理問題,導致沒有足夠現金需要裁員。
同時也有8部Youtube影片,追蹤數超過4萬的網紅吳老師教學部落格,也在其Youtube影片中提到,PHP與雲端資料庫教學總整理(2015) 完整連結: http://terry55wu.blogspot.tw/2015/04/phpapp.html 最近開的課程其實都是可以相互整合的, 而這些可成都跟目前大數據時代的處理與應用有很大的關係, 其中有和APP開發有關的有 ANDROID APP...
「sql練習題目」的推薦目錄:
- 關於sql練習題目 在 小吃貨的英國生活日記 Facebook 的最佳解答
- 關於sql練習題目 在 吳老師教學部落格 Youtube 的最讚貼文
- 關於sql練習題目 在 吳老師教學部落格 Youtube 的精選貼文
- 關於sql練習題目 在 吳老師教學部落格 Youtube 的最佳解答
- 關於sql練習題目 在 Re: [SQL ] SQL練習題- 看板Database - 批踢踢實業坊 的評價
- 關於sql練習題目 在 50道SQL 題目練習 - GitHub Gist 的評價
- 關於sql練習題目 在 DataCamp-SQL 課程心得分享因為工作接觸到資料分析的關係 的評價
- 關於sql練習題目 在 LeetCode中的sql练习题-easy难度部分 - 幻悠尘的小窝 的評價
- 關於sql練習題目 在 Re: [SQL ] SQL練習題- 看板Database - PTT網頁版 的評價
- 關於sql練習題目 在 SQL 的五十道練習 的評價
sql練習題目 在 吳老師教學部落格 Youtube 的最讚貼文
PHP與雲端資料庫教學總整理(2015)
完整連結:
http://terry55wu.blogspot.tw/2015/04/phpapp.html
最近開的課程其實都是可以相互整合的,
而這些可成都跟目前大數據時代的處理與應用有很大的關係,
其中有和APP開發有關的有 ANDROID APP開發與雲端實務應用2015
另外,如何和 APP的資料庫連結還有賴向PHP技術,
這方面的開課有 PHP雲端資料庫教學,
最近發表過的文章有 :
PHP雲端資料庫教學之1(打造PHP與MySQL環境)
PHP雲端資料庫教學之2(建立互動PHP網站)
PHP雲端資料庫教學之3(動態網頁如何傳遞引數GET與POST)
PHP雲端資料庫教學之4(PHP證照考題說明與表單設計)
PHP雲端資料庫教學之5(PHP證照102題環境與題目)
PHP雲端資料庫教學之6(建立MYSQL資料庫與SQL語法)
PHP雲端資料庫教學之7(PHP證照202題解題)
PHP雲端資料庫教學之8(用DW設計新聞公告專題使用者)
PHP雲端資料庫教學之9(用DW設計新聞公告專題管理者)
PHP雲端資料庫教學之10(用DW設計購物車01)
PHP雲端資料庫教學之11(用DW設計購物車02)
PHP雲端資料庫教學之12(用DW設計購物車03)
01_如何利用FOR迴圈輸出多選
02_如何利用FOR迴圈輸出多選(GET傳送)
03_PHP證照考題說明與表單設計說明
04_PHP證照考題說明與結果畫面
05_02_表單介面設計
06_表單設計細節與傳遞參數與接收
07_如何在表格中顯示接收到的變數
08_將換行轉成BR換行與PHP中文手冊
之後的課程還會在講有關PHP與MYSQL連解方面的課程,
也可以把EXCEL的資料匯入到MYSQL,可以利用PHP建立雲端資料庫,
可以當成是EXCEL和APP的共用資料庫,
對這部分有興趣的網路學員可以留意。
教完MYSQL之後,接下來就是利用DW CS6來建立動態資料庫網站,
亦即不用PHP程式也可以建立互動式網站,
但還是有點PHP程式會比較好理解邏輯。
PHP雲端資料庫教學之4(PHP證照考題說明與表單設計)
PHP雲端資料庫教學之5(PHP證照102題環境與題目)
參考書目
Dreamweaver CS6 X PHP超強互動網站特訓班(附影音教學、獨家擴充程式、範例、試用版)作者: 鄧文淵/總監製,文淵閣工作室/編著
挑戰PHP5/MySQL程式設計樂活學
作者: 文淵閣工作室 (著)
PHP 5實力養成暨評量(附光碟)
作者: 財團法人中華民國電腦技能基金會
php教學例子,php mvc教學,php ajax教學,資料庫,大數據,開放資料,XAMPP,Dreamweaver CS6,雲端資料庫,php mysql教學,html教學,php教學影片,php教學範例,php 安裝
sql練習題目 在 吳老師教學部落格 Youtube 的精選貼文
EXCEL VBA連結:
01_EXCEL函數與VBA http://terry55wu.blogspot.com/p/excelvba.html
02_EXCEL VBA自動化教學 http://terry55wu.blogspot.tw/p/excel-vba.html
VB.NET實務與資料庫設計第13次上課(TQC VB2008解題)
終於開始講解VB.NET與資料庫連結的第四類題目了,
301題算是資料庫連結的最基本題,主要要讓大家了解什麼時資料繫結的控制項,
對應的就是ACCESS資料庫的檔案、資料表與欄位,這些觀念要清楚,
對資料庫的設計才能靈活,當然,SQL語言自然也是重點,
SQL語言就是和資料庫溝通的一種語言,學好它自然是與資料庫溝通最重要的一環。
此外,除了ACCESS資料庫外,VB.NET也提供了一個免費的SQL SERVER EXPRESS資料庫,
他的運用會比ACCESS來的更便利,也不會有版權上的問題,商業用途除外,
看似不同,但大同小異啦!反正流程差不多,最重要是要把程式寫出來最重要。
最後也補充成語全文檢索系統的設計,回家也補錄了連結資料庫的最後一部份,
主要也是參考ASP.NET設計的方法,在網路上真的還找不到像我這樣快速的寫法,
是我自己TRY出來的,說真的,很多程式還真的要自己慢慢試,才能得到最好的程式結果,
網路上這方面的解答也少,即使有,問題也都還很多,大多不是正確的程式,
反而增加學習的負擔,最後一個影音是回家新錄的,所以請同學自行觀看與練習,
下次上課會再講解一次。
吳老師 99/11/26
上課影音:
01_301SQL查詢工具試題解說
02_301SQL查詢工具程式撰寫
03_301SQL查詢工具程式除錯
04_建立成語資料庫
05_連接資料庫的流程
吳老師教學網:
http://3cc.cc/10g
部落格:
http://terry55wu.blogspot.com/
論壇:
http://groups.google.com/group/vbnet2008?hl=zh-TW
YOUTUBE:
http://www.youtube.com/terry28853669
TQC,VB.NET,2008,電腦證照,吳清輝老師,勞工大學,程式設計,線上教學,e化創新,優質化,雲端計算,虛擬電腦
sql練習題目 在 吳老師教學部落格 Youtube 的最佳解答
VB.NET實務與資料庫設計第13次上課(TQC VB2008解題)
終於開始講解VB.NET與資料庫連結的第四類題目了,
301題算是資料庫連結的最基本題,主要要讓大家了解什麼時資料繫結的控制項,
對應的就是ACCESS資料庫的檔案、資料表與欄位,這些觀念要清楚,
對資料庫的設計才能靈活,當然,SQL語言自然也是重點,
SQL語言就是和資料庫溝通的一種語言,學好它自然是與資料庫溝通最重要的一環。
此外,除了ACCESS資料庫外,VB.NET也提供了一個免費的SQL SERVER EXPRESS資料庫,
他的運用會比ACCESS來的更便利,也不會有版權上的問題,商業用途除外,
看似不同,但大同小異啦!反正流程差不多,最重要是要把程式寫出來最重要。
最後也補充成語全文檢索系統的設計,回家也補錄了連結資料庫的最後一部份,
主要也是參考ASP.NET設計的方法,在網路上真的還找不到像我這樣快速的寫法,
是我自己TRY出來的,說真的,很多程式還真的要自己慢慢試,才能得到最好的程式結果,
網路上這方面的解答也少,即使有,問題也都還很多,大多不是正確的程式,
反而增加學習的負擔,最後一個影音是回家新錄的,所以請同學自行觀看與練習,
下次上課會再講解一次。
吳老師 99/11/26
上課影音:
01_301SQL查詢工具試題解說
02_301SQL查詢工具程式撰寫
03_301SQL查詢工具程式除錯
04_建立成語資料庫
05_連接資料庫的流程
吳老師教學網:
http://3cc.cc/10g
部落格:
http://terry55wu.blogspot.com/
論壇:
http://groups.google.com/group/vbnet2008?hl=zh-TW
YOUTUBE:
http://www.youtube.com/terry28853669
TQC,VB.NET,2008,電腦證照,吳清輝老師,勞工大學,程式設計,線上教學,e化創新,優質化,雲端計算,虛擬電腦,(吳老師提供)
sql練習題目 在 50道SQL 題目練習 - GitHub Gist 的推薦與評價
建立資料表******/. CREATE TABLE student(. sno VARCHAR(10), -- 學生編號. sname VARCHAR(20),-- 學生姓名. sage INT(2), -- 年齡. ssex VARCHAR(5), -- 性別. ... <看更多>
sql練習題目 在 DataCamp-SQL 課程心得分享因為工作接觸到資料分析的關係 的推薦與評價
25sprout Keep Learning Project :: DataCamp-SQL 課程心得分享因為工作接觸到 ... 除了課程外,針對每個語言它也有練習題、Project 可以練習,對於沒有程式背景的 ... ... <看更多>
sql練習題目 在 Re: [SQL ] SQL練習題- 看板Database - 批踢踢實業坊 的推薦與評價
a...問題裡面沒看到你要求平均分數是求什麼的平均
可是你的SQL裡面有...企劃案不寫清楚無法作業啊(哭哭)
我以下當作個人平均分數喔,請試試看~ ≧▽≦
以下,MSSQL語法,直接整個全部COPY去貼,範例只各年級取1個
TOP自己改,應該會吧?
if exists
(select * from dbo.sysobjects where id = object_id('[dbo].[撈資料]')and
objectproperty(id,'IsProcedure') = 1)
drop PROCEDURE [dbo].[撈資料]
GO
CREATE PROCEDURE [dbo].[撈資料]
-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE cur CURSOR LOCAL FOR
select distinct 年級 from 學生
DECLARE @id_no nvarchar(50)
BEGIN
OPEN cur
FETCH NEXT FROM cur INTO @id_no
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT TOP 1 A.[學號],a.[姓名],a.[年級],SUM(B.分數) as 總分
,AVG(B.分數) AS 平均成績
FROM [test].[dbo].[學生] a inner join 成績 b on a.學號 = b.學號
where [年級]=@id_no
GROUP BY a.年級,a.學號,a.[姓名]
order by NEWID()
FETCH NEXT FROM cur INTO @id_no
END
CLOSE cur --關閉cur
DEALLOCATE cur --釋放cur
END
END
if exists
(select * from dbo.sysobjects where id = object_id(N'[dbo].[學生]')
and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[學生]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[成績]')
and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[成績]
GO
CREATE TABLE [dbo].[學生](
[學號] [int] IDENTITY(1,1) NOT NULL,
[姓名] [nvarchar](50) NOT NULL,
[年級] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_學生] PRIMARY KEY CLUSTERED
(
[學號] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON
[PRIMARY]
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[成績](
[編號] [int] IDENTITY(1,1) NOT NULL,
[學號] [int] NOT NULL,
[科目] [nvarchar](50) NOT NULL,
[分數] [int] NOT NULL,
CONSTRAINT [PK_成績] PRIMARY KEY CLUSTERED
(
[編號] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON
[PRIMARY]
) ON [PRIMARY]
GO
insert [學生]( 姓名,年級) values('A01',1)
insert [學生]( 姓名,年級) values('A02',2)
insert [學生]( 姓名,年級) values('A03',1)
insert [學生]( 姓名,年級) values('A04',1)
insert [學生]( 姓名,年級) values('A05',3)
insert [學生]( 姓名,年級) values('A06',1)
insert [學生]( 姓名,年級) values('A07',1)
insert [學生]( 姓名,年級) values('A08',2)
insert [學生]( 姓名,年級) values('A09',3)
insert [學生]( 姓名,年級) values('A10',1)
insert [成績]( 學號,科目,分數) values(1,'國文',60)
insert [成績]( 學號,科目,分數) values(1,'英文',77)
insert [成績]( 學號,科目,分數) values(1,'數學',30)
insert [成績]( 學號,科目,分數) values(2,'國文',40)
insert [成績]( 學號,科目,分數) values(2,'英文',87)
insert [成績]( 學號,科目,分數) values(2,'數學',39)
insert [成績]( 學號,科目,分數) values(3,'國文',55)
insert [成績]( 學號,科目,分數) values(3,'英文',79)
insert [成績]( 學號,科目,分數) values(3,'數學',90)
insert [成績]( 學號,科目,分數) values(4,'國文',60)
insert [成績]( 學號,科目,分數) values(4,'英文',77)
insert [成績]( 學號,科目,分數) values(5,'數學',30)
insert [成績]( 學號,科目,分數) values(6,'國文',60)
insert [成績]( 學號,科目,分數) values(7,'英文',77)
insert [成績]( 學號,科目,分數) values(7,'數學',30)
insert [成績]( 學號,科目,分數) values(8,'國文',60)
insert [成績]( 學號,科目,分數) values(9,'英文',77)
insert [成績]( 學號,科目,分數) values(10,'數學',30)
insert [成績]( 學號,科目,分數) values(10,'國文',60)
insert [成績]( 學號,科目,分數) values(10,'英文',77)
DECLARE @RC int
-- TODO: 在此處設定參數值。
EXECUTE @RC = [撈資料]
噢,我的下班時間啊orz
※ 引述《john9872 (菸酒生)》之銘言:
: 假設我有兩個資料表,分別為"學生"及"成績",
: 資料欄位分別為: ( student_ID, 姓名, 年級 ) 及
: ( 成績流水號, student_ID, 科目, 分數 ),
: 資料內容如下圖例:
: "學生"資料表 "成績"資料表
: ------------- -------------
: student_ID 姓名 年級 成績流水號 student_ID 科目 分數
: ============================ ====================================
: 1 小黃 1 1 1 國文 60
: 2 小白 2 2 1 數學 70
: 3 小虎 3 3 1 英文 50
: 4 小便 4 5 2 國文 12
: . . . . . .
: . . . . . .
: . . . . . .
: 假設學生資料表共有900筆(共有1~6年級),成績資料表1800筆(國英數3科),
: 請問要怎麼從1~6年級各挑出100名學生(共600名),並計算出他們的成績及總分呢?
: 以下是我寫的SQL:
: SELECT student_ID, SUM(分數), AVG(分數)
: FROM 學生
: GROUP BY student_ID
: ....
: 由於我是SQL初心者,所以太複雜的SQL語法還不太能理解,
: 目前是卡在要取各年級100名學生的部分,
: 不知道該如何運用WHERE或其他指令寫出來(題目也有提示用JOIN)
: 麻煩大家替我解惑,謝謝各位:)
--
沒錢時不變心可以證明一個女人是否對你真心,
有錢時不變心可以證明一個男人對妳是否真心。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.130.112.242
... <看更多>