Re: [SQL ] 請教 SQL 語法關於 group by

看板Database (資料庫)作者 (可愛小孩子)時間8年前 (2016/11/15 23:27), 8年前編輯推噓3(301)
留言4則, 3人參與, 最新討論串2/2 (看更多)
select t1.* from tbl t1 inner join ( select first_name,last_name,max(time) time from tbl where type != 100 group by first_name,last_name ) t2 on t1.first_name = t2.first_name and t1.last_name = t2.last_name and t1.time = t2.time left join tbl t3 on t1.first_name = t3.first_name and t1.last_name = t3.last_name and t3.type = 100 order by t3.type desc ※ 引述《suomax (SUOMAX)》之銘言: : (針對 SQL 語言的問題,用這個標題。請用 Ctrl+Y 砍掉這行) : 資料庫名稱: Sqlite : 資料庫版本: 3.x (Android) : 內容/問題描述: : 請教各位 SQL 前輩, : 我有一個資料表的結構是這樣 : _ID FIRST_NAME LAST_NAME TYPE TIME : 1 Mark Zuckerberg 1 10000 : 2 Larry Page 1 10001 : 3 Jeff Weiner 1 10002 : 4 Elon Musk 2 10003 : 5 Lary Page 2 10004 : 6 Mark Zuckerberg 100 10005 : 7 Elon Musk 1 10006 : 8 Mark Zuckerberg 2 10007 : 9 Larry Page 100 10008 : 希望的查詢結果: : 1. 讓記錄中有出現 TYPE=100 的排在最前面, 再按照 TIME 排序 : 2. 排除 TYPE=100, 每個 FIRST_NAME,LAST_NAME 只出現一次 : 例: : _ID FIRST_NAME LAST_NAME TYPE TIME : 5 Larry Page 2 10003 // #9 type=100, time=10008 : 8 Mark Zuckerberg 2 10007 // #6 type=100, time=10004 : 7 Elon Musk 1 10006 // #6 time=10006 : 3 Jeff Weiner 1 10002 // #3 time=10002 : 希望達到的目的是 type=100 當做某種特殊記錄, 讓某個人置頂 : 同時也因為他只當做特殊符號, 所以不顯示在最後列出的結果中 : 像這樣的用法,有可能做到嗎? : 有可能用一行 query 做到嗎? : 謝謝! ----- Sent from JPTT on my Asus ASUS_Z017DA. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.138.96.216 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1479223647.A.34A.html ※ 編輯: cutekid (101.138.96.216), 11/16/2016 00:20:42

11/17 10:44, , 1F
wow! 感謝
11/17 10:44, 1F

11/18 10:40, , 2F
上來查問題剛好看到這篇,得救了,感恩
11/18 10:40, 2F

12/16 18:17, , 3F
我想請教一下這query最後有按照time排序嗎?
12/16 18:17, 3F

12/16 18:18, , 4F
好向只顯示最大時間吼
12/16 18:18, 4F
文章代碼(AID): #1OAobVDA (Database)
文章代碼(AID): #1OAobVDA (Database)