Re: [SQL ] 如何統計連續的狀態?

看板Database (資料庫)作者 (可愛小孩子)時間4年前 (2020/04/09 22:48), 編輯推噓2(200)
留言2則, 2人參與, 4年前最新討論串2/3 (看更多)
網址: http://sqlfiddle.com/#!9/4bdc57/10 #測資 create table sdb(sid char(1),grade int,date char(8)); insert into sdb values ('A',20,'20200401'),('A',48,'20200402'),('A',65,'20200403'), ('A',49,'20200404'),('A',71,'20200405'),('A',56,'20200406'), ('A',61,'20200407'),('A',55,'20200408'),('A',72,'20200409'), ('A',68,'20200410'), ('B',61,'20200401'),('B',61,'20200402'),('B',61,'20200403'), ('B',61,'20200404'),('B',61,'20200405'),('B',61,'20200406'), ('B',61,'20200407'),('B',61,'20200408'),('B',72,'20200409'), ('B',68,'20200410') #查詢結果 select sid,count(*) - max(if(grade<=60,num,0)) as ans from ( select sid,grade, if(@sid = sid,@num:=@num+1,@num:=1) as num, @sid := sid from ( select * from sdb order by sid,date ) t1,(select @sid,@num) t2 ) result group by sid ※ 引述《jami520 (ALEN)》之銘言: : (針對 SQL 語言的問題,用這個標題。請用 Ctrl+Y 砍掉這行) : 資料庫名稱:mysql : 資料庫版本:5.0 : 內容/問題描述:目前有個學生資料表 sdb : pid sid(學生代碼) grade(分數) gdate(日期) : 我想要列出到最近一天,每位學生分數>60分的連續天數 : 假設有位學生這十天(遠->近),分數如下 : 20, 48, 65, 49, 71, 56, 61, 55, 72, 68 : 這樣這位學生就是2天(72與68) : 而我想要用一段SQL語法去把每位學生這十天的情況都列出來 : 不曉得要怎樣來寫呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.168.243.202 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1586443703.A.162.html

04/10 06:06, 4年前 , 1F
非常感謝!
04/10 06:06, 1F

04/12 14:33, 4年前 , 2F
感謝!前陣子遇到累似問題也想了很久
04/12 14:33, 2F
文章代碼(AID): #1UZpMt5Y (Database)
討論串 (同標題文章)
文章代碼(AID): #1UZpMt5Y (Database)