精華區beta CSSE 關於我們 聯絡資訊
※ 引述《dayyoung (dayyoung)》之銘言: : 查閱了久 想請問一下關於 count的替代方法 : 比如說一個table T有三個欄位 name,age, car id : SELECT name : FROM T : WHERE T.age > 20 : GROUP BY T.name : HAVING count(*) > 1 : 這樣就可以找到哪些人年紀大於20歲且擁有超過一台車 : 如果不能用count請問有代替的方法嗎?感謝大家 看起來像是面試題目...... 首先建立一個subquery, 使她顯示同一個name的最大最小id, 然後主要query檢查最大最小id是否不同,若不同代表此name出現了兩次以上 可認為是 count() > 1的等義詞。 SELECT x.name FROM (SELECT a.*, max(a.id) as maxid, min(a.id) as minid FROM T as a GROUP BY a.name) as x WHERE x.age > 20 AND x.maxid != x.minid -- 逝去的愛,使生命更豐富。 LIFE has become richer by the love that has been lost. --泰戈爾,漂鳥集.223。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.139.145