这是我的示例表:
|"id","singlesaleid","quantity"
-------------------------------------
| 1, "00278e0f", 37
| 2, "00278e0f", 38
| 3, "002ebd2e", 37
| 4, "00380783", 37
| 5, "003b3c35", 37
| 6, "003b3c35", 38
| 7, "0042170b", 38
| 8, "00421b89", 37
| 9, "00421b89", 38
| 10, "00587f02", 37
| 11, "00799433", 38
| 12, "00799433", 37
如何选择选择并仅对在singlesaleid列中具有至少两个重复值的行进行分组?
结果应该是:
|"id","singlesaleid","quantity"
-------------------------------------
| 1, "00278e0f", 37
| 6, "003b3c35", 38
| 9, "00421b89", 38
| 12, "00799433", 37
有人可以帮忙吗?
答案 0 :(得分:2)
SELECT a.*
FROM TableName a
INNER JOIN
(
SELECT singlesaleid, MIN(quantity) min_val
FROM TableName
GROUP BY singlesaleid
HAVING COUNT(*) > 1
) b a.singlesaleid = b.singlesaleid AND
a.quantity = b.Min_Val
答案 1 :(得分:0)
如果您想要只有那些具有至少2个重复项的singlesaleid's
的任何记录(只有一个),请尝试以下代码..
select * from table where rowid in
(select min(rowid) from table
group by singlesaleid
having count(*)>=2)
答案 2 :(得分:0)