所以我要求尝试转换这句话:
SELECT C.cid, C.cname
FROM Customer C, Buys B
WHERE C.cid = B.cid
GROUP BY C.cid
HAVING count(pid) > 100
同样但不使用HAVING
子句。我在过去一小时左右的时间里一直想弄清楚,但我不确定如何正确地做到这一点。我一直试图弄清楚如何正确使用WHERE
子句。您只能使用HAVING
子句正确使用聚合函数吗?
这就是表格的样子
Product(pid, name, price, mfgr)
Buys(cid, pid)
Customer(cid, cname, age)
答案 0 :(得分:1)
在评论中简单引用@zfus回答,只是这个问题似乎在列表中有一个答案,以避免进一步的流量。
SELECT cid, cname
FROM (
SELECT cid, cname, count(*) AS counter
FROM customer c
INNER JOIN buys b on (c.cid=b.cid)
GROUP BY cid, cname
) AS result
WHERE counter > 100