0

2我有一个重复项目表,我从左连接完成了这个表。-可以说这个表别名是“piked”

ID     Product         PickedBY
1      Basket          Josh
1      Basket          Jessica
1      Basket          Josh
1      Basket          Mike
1      Basket          Mike
2      Seat            Alan
3      Computer        Jessica
4      Mouse           Josh
4      Mouse           Mike
4      Mouse           Jessica

我希望将相等的 ID 限制为 2。我该怎么做?所以,如果我只列出 ids 结果将是 1、1、2、3、4、4。

谢谢

4

2 回答 2

0

你的问题对我来说没有意义,这让我想知道你想用这样的查询实现什么,但你可以尝试对结果进行分组:

select id, count(*)
from piked
group by id

这并不完全是您所要求的,但您可以通过查看结果的第二列来判断一个 id 是否有重复项。结果将是

1,5
2,1
3,1
4,3
于 2012-06-30T20:35:22.633 回答
0

这应该可以解决问题:

SELECT ID, Product, PickedBy FROM (
SELECT
IF(@prev != q.ID, @rownum:=1, @rownum:=@rownum+1) as rownumber, @prev:=q.ID, q.*
FROM (
    SELECT
    ID, Product, PickedBy
    FROM piked
    , (SELECT @rownum:=0, @prev:=0) r
    ORDER BY ID
)q
)asdf
WHERE asdf.rownumber <= 2
于 2012-06-30T21:02:47.873 回答