作者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