所以我被要求尝试转换这个语句:
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)
最佳答案
只需在评论中引用@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
关于不使用 having 的 mysql 计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25255716/