[SQL ] 關於聚合函數,和計算週數的兩個問題

看板Database (資料庫)作者 (不是我)時間5年前 (2019/06/01 18:57), 5年前編輯推噓2(200)
留言2則, 2人參與, 5年前最新討論串1/4 (看更多)
資料庫名稱:MySQL 資料庫版本: 內容/問題描述: 大家好,小弟這邊有兩個問題想請教。 第一個問題關於聚合函數,我有一個資料表"成績",有三個欄位 課程 學生 分數, 我想選出每個課程中最高分的人: select 課程, max(分數) from 成績 group by 課程 但這樣我只能得到每個課程對應到的最高分,有簡便辦法得到該分數所對應到的學生嗎? 現在我只想得到這種作法: select 學生 from 成績 where (課程, 分數) in (select 課程, max(分數) from 成績 group by 課程) ========================================================================== 第二個問題關於生日, 我有一個資料表"學生資料",裡面有學生的生日(年-月-日), 如果要判斷學生是否在這週生日要怎麼做呢? 如果是判斷這個月的話很簡單,但不知道怎麼去判斷生日是否和今天在同一週@@a 以上兩個問題麻煩大家幫解了,感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.250.16.184 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1559386672.A.E52.html

06/01 21:28, 5年前 , 1F
MySql 有 week(date) function 可以用喔
06/01 21:28, 1F
感謝回覆 可是用week函數有個問題是,生日那年的周數,和今年的周數不一定相同欸。 舉例:小明2000-06-04生日,week('2000-06-04')=23 今天是2019-06-02, week('2019-06-02')=22 我們看年曆知道今年的06-02和06-04是同週,會說小明這週生日; 但用week()函數做出來就可能會出錯了? (以上皆以星期日為一週第一天做舉例) 小弟就是用了week()發現這個問題,所以上來求救QQ

06/02 07:55, 5年前 , 2F
select 課程 學生 max(分數).. group by 課程 學生
06/02 07:55, 2F
group by 課程, 學生 這樣不就會每個課程、每個學生都抓出一個max()了嗎? 像A、B、C三門課,各有10個學生修課,我想抓出三個成績,分別就是A、B、C的最高分。 e大的作法應該會變成跑出3*10=30個成績? ※ 編輯: sagwow (111.250.16.136), 06/02/2019 09:48:40
文章代碼(AID): #1SybemvI (Database)
文章代碼(AID): #1SybemvI (Database)