Re: [问题] SQL count 的替代方法

楼主: neversay (子不语)   2010-10-02 23:51:20
※ 引述《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

Links booklink

Contact Us: admin [ a t ] ucptt.com