精華區beta CSSE 關於我們 聯絡資訊
※ 引述《dayyoung (dayyoung)》之銘言: : ※ 引述《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請問有代替的方法嗎?感謝大家 : 感謝大家提供的方法 : 假設 table 如下 : NAME AGE CAR_ID : --------------- ---------- --------------- : john 19 honda01 : john 19 accord01 : Mary 21 honda02 : Mary 21 accord00 : jin 22 toyota11 : 正確的答案應該只有Mary因為他有兩台車 : 大家提供的第二方法 如果是 : select name : from T : where T.age > 20 and car_id!=''; : 這樣好像得不到任何結果ㄟ : 第一種方法我再試試 感謝大家 謝謝 --效能不好 SELECT DISTINCT t1.name FROM T t1,T t2 WHERE t1.name = t2.name AND t1.age = t1.age AND t1.age > 20 AND t1.car_id <> t2.car_id --與IN類似 SELECT t1.name FROM T t1 WHERE t1.age > 20 AND EXISTS ( SELECT 1 FROM T t2 WHERE t1.name = t2.name AND t1.age = t2.age AND t1.car_id <> t2.car_id ) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.224.8.193