假设我有一张这样的桌子。表名:日志
id time prod stan amt
1 02:01 10 445 22
2 05:33 02 446 56
3 02:02 10 447 22
4 20:40 55 448 88
我希望输出为
id time prod stan amt
1 02:01 10 445 22
3 02:02 10 447 22
这是我试过的
SELECT time, prod, stan, amt
FROM Logs
GROUP BY time, prod, stan, amt
HAVING ( COUNT(prod) > 1 AND COUNT(amt) > 1 )
这里相同的值将是prod和amt。我想要所有的记录,因为斯坦是不同的 重复不起作用 任何人都可以帮助SQL查询
答案 0 :(得分:0)
试试这个SQL语句:
SELECT * FROM Logs l JOIN (
SELECT prod, amt
FROM Logs
WHERE time between '02:00' and '06:00'
GROUP BY prod, amt
HAVING count(*)>1
) tmp
ON tmp.prod=l.prod AND tmp.amt=l.amt
WHERE time between '02:00' and '06:00'
我添加了更多行来检查是否会添加不相关的行。