作者neversay (子不語)
看板CSSE
標題Re: [問題] SQL count 的替代方法
時間Sat Oct 2 23:51:20 2010
※ 引述《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