Re: [SQL ] 高考SQL題目

看板Database作者 (可愛中央處理器)時間14年前 (2011/08/15 13:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/7 (看更多)
用你原本寫的去改的,可以應付有多個會員擁有相同最多朋友的情況: select mId,name,bDate from Member where mId in ( select friend from FriendRelation group by friend having count(*) = ( select max(cnt) from ( select count(*) as cnt from FriendRelation group by friend ) ) ) ※ 引述《kisha024 (4545454554)》之銘言: : : 看過去雖然有四個TABLE,實際語意讓我覺得只用到前兩個? : : 請問這題有很多小題嗎? : : member and friend 這兩個table : : FriendRelation.friend 內容應該會=mid 請問題目有說明嗎? : : 先找出 FriendRelation.friend 該欄位 最多被記錄的然後回頭查 : : FriendRelation出 mid 然後關連到 member 這樣會寫了嗎? : : -- ORACLE -- : : SELECT T3.MID, T3.NAME, T3.BDATE, T2.FRIEND : : FROM (SELECT * : : FROM (SELECT T.FRIEND, COUNT(*) CNT : : FROM FriendRelation T : : GROUP BY T.FRIEND : : ORDER BY CNT DESC) T1 : : WHERE ROWNUM = 1) T2, : : Member T3 : : WHERE T3.MID = T2.FRIEND : : -- MS-SQL -- : : SELECT T2.MID,T2.NAME,T2.BDATE,T1.FRIEND : : FROM (SELECT TOP 1 FRIEND,COUNT(*) AS CNT : : FROM FriendRelation : : GROUP BY FRIEND : : ORDER BY CNT DESC ) AS T1 , : : MEMBERS T2 : : WHERE T1.FRIEND = T2.MID : : 應該是這樣寫吧 = = 我手邊沒辦法幫你測 囧 : : 另外ORACLE 那段 要回答答案的話 T2.FRIEND : : AND MS-SQL T2.FRIEND 都要拿掉 : : 因為題目沒有說要顯示這個。 : 謝謝 這題還有另一小題 我沒列出 我原本是寫 : select mId,name,bDate : From Member : Where mId in (select friend : From FriendRelation : group by friend : having count(*) = max(count(*)) : ) : 我用mysql測 有語法錯誤 應該是max不能這樣用吧 : 你提供的那兩段用mysql測 也是顯示有語法問題 但語意很清楚了 : THX -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.59.164.109
文章代碼(AID): #1EIAzrvu (Database)
討論串 (同標題文章)
文章代碼(AID): #1EIAzrvu (Database)