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