-4

可以说我有一张这样的桌子。表名:日志

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。我想要所有记录,因为 stan 不同重复不起作用任何人都可以帮助进行 sql 查询

4

1 回答 1

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'

我添加了更多行以检查是否不会添加不相关的行。

另请参阅此演示:http ://sqlfiddle.com/#!2/ca583/2/0

于 2013-04-28T12:04:38.250 回答