Re: [SQL ] 關於聚合函數,和計算週數的兩個問題
第一題:
select t1.*
from 成績 t1 inner join (
select 課程,max(分數) as 分數,from 成績 group by 課程
) t2 on t1.課程 = t2.課程 and t1.分數 = t2.分數
第二題:
create table person (birthday date);
insert into person values
('2000-06-01'),('2000-06-02'),('2000-06-03'),
('2000-06-04'),('2000-06-05'),('2000-06-06'),
('2000-06-07'),('2000-06-08'),('2000-06-09');
select *
from person
where
datediff(date_format(birthday,concat(year(curdate()),'-%m-%d')),curdate()) =
(weekday(date_format(birthday,concat(year(curdate()),'-%m-%d'))) + 1) % 7 -
(weekday(curdate()) + 1) % 7;
說明: 1. 先將 birthday 調整到今年日期
2. 判斷「日期差距」是否等於「weekday差距」
註: (weekday(date) + 1) % 7 是把星期日 ~ 星期六調成 0 ~ 6
3. 這樣即使跨年,也可以判斷是否在同一週
網址: https://bit.ly/2JT5DQ8
※ 引述《sagwow (不是我)》之銘言:
: 資料庫名稱:MySQL
: 資料庫版本:
: 內容/問題描述:
: 大家好,小弟這邊有兩個問題想請教。
: 第一個問題關於聚合函數,我有一個資料表"成績",有三個欄位 課程 學生 分數,
: 我想選出每個課程中最高分的人:
: select 課程, max(分數)
: from 成績
: group by 課程
: 但這樣我只能得到每個課程對應到的最高分,有簡便辦法得到該分數所對應到的學生嗎?
: 現在我只想得到這種作法:
: select 學生
: from 成績
: where (課程, 分數) in (select 課程, max(分數) from 成績 group by 課程)
: ==========================================================================
: 第二個問題關於生日,
: 我有一個資料表"學生資料",裡面有學生的生日(年-月-日),
: 如果要判斷學生是否在這週生日要怎麼做呢?
: 如果是判斷這個月的話很簡單,但不知道怎麼去判斷生日是否和今天在同一週@@a
: 以上兩個問題麻煩大家幫解了,感恩
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.170.107.108 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1559545536.A.D64.html
推
06/06 22:33,
5年前
, 1F
06/06 22:33, 1F
→
06/06 22:34,
5年前
, 2F
06/06 22:34, 2F
→
06/06 22:35,
5年前
, 3F
06/06 22:35, 3F
推
06/06 22:55,
5年前
, 4F
06/06 22:55, 4F
→
06/06 23:08,
5年前
, 5F
06/06 23:08, 5F
推
06/06 23:26,
5年前
, 6F
06/06 23:26, 6F
→
06/06 23:26,
5年前
, 7F
06/06 23:26, 7F
→
06/07 08:11,
5年前
, 8F
06/07 08:11, 8F
→
06/07 09:04,
5年前
, 9F
06/07 09:04, 9F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 4 篇):
Database 近期熱門文章
PTT數位生活區 即時熱門文章