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

作者: ken218 (ken218)   2019-06-10 20:23:18
本身跟 MSSQL 比較熟,所以用 SQL 回,不過我查過,相對應函數 MySQL 都有,上一篇
有提過了,所以不贅述。這邊針對生日那題回應
SELECT NAME
FROM STUDENT
CROSS JOIN (
Select Datepart(weekday, GETDATE()) D
) X
WHERE
DATEADD(year, datediff(year, BIRTHDAY, Getdate()), Birthday)
Between convert(date, DATEADD(day, -(iif(d=1,8,d)-2),Getdate())
And dateadd(day,8-(iif(d=1,8,d)), Getdate())
本來想要單純檢查 Dayofyear, 但是發現閏年有誤差。
Cross join 單純是因為當日的 Datepart 不想打四次
Convert date 因為 Getdate 包含時間,做起始日檢查要切掉時間才可以
※ 引述《sagwow (不是我)》之銘言:
: 資料庫名稱:MySQL
: 資料庫版本:
: 內容/問題描述:
: 大家好,小弟這邊有兩個問題想請教。
: 第一個問題關於聚合函數,我有一個資料表"成績",有三個欄位 課程 學生 分數,
: 我想選出每個課程中最高分的人:
: select 課程, max(分數)
: from 成績
: group by 課程
: 但這樣我只能得到每個課程對應到的最高分,有簡便辦法得到該分數所對應到的學生嗎
?
: 現在我只想得到這種作法:
: select 學生
: from 成績
: where (課程, 分數) in (select 課程, max(分數) from 成績 group by 課程)
: ==========================================================================
: 第二個問題關於生日,
: 我有一個資料表"學生資料",裡面有學生的生日(年-月-日),
: 如果要判斷學生是否在這週生日要怎麼做呢?
: 如果是判斷這個月的話很簡單,但不知道怎麼去判斷生日是否和今天在同一週@@a
: 以上兩個問題麻煩大家幫解了,感恩

Links booklink

Contact Us: admin [ a t ] ucptt.com