我想从table1找到所有cid,这个cid已经购买了两次pid。例如,在table1中,结果应为(3,2),因为cid 3已经两次购买了pid 2。
如何编写sql来执行该操作?
答案 0 :(得分:1)
SELECT cid
FROM yourTable
GROUP BY cid
HAVING COUNT(*) - COUNT(DISTINCT pid) > 0
<强>解释强>
此查询将识别出cid
值出现两次或更多次的pid
组,至少有一个pid
值。 HAVING
子句中的逻辑是,如果pid
组的所有cid
都是唯一的,那么表达式将等于零,否则它将大于零。