我一直在寻找解决这个问题的办法,但没有一个办法能完全满足我的需要。
我有三列:inputdate、orderid、employeeid。
我想知道orderid是否重复,我想知道哪两个(或更多)员工id都输入了订单,以及何时输入。
示例数据:
inputDate orderID employeeID
2018-10-30 10:24:56 234264 45
2018-10-30 10:26:12 473897 45
2018-10-30 10:29:59 879546 1
2018-10-30 11:01:04 987654 1
2018-10-30 11:01:04 165498 1
2018-10-30 16:12:59 654321 5
2018-10-30 16:26:25 654321 1
2018-10-30 16:42:02 879546 17
订单号654321在里面有两次,879546也是。我需要输出的是:
inputDate OrderID employeeID
2018-10-30 16:12:59 654321 5
2018-10-30 16:26:25 654321 1
2018-10-30 10:29:59 879546 1
2018-10-30 16:42:02 879546 17
或(更好):
orderID employeeID1 inputDate1 employeeID2 inputDate2
654321 1 2018-10-30 16:12:59 5 2018-10-30 16:26:25
879546 1 2018-10-30 10:29:59 17 2018-10-30 16:42:02
我需要它根据654321和879546是重复值这一事实得到输出。
我找到了一个愚蠢的解决办法:
SELECT orderID,MIN(employeeID),MIN(inputDate),MAX(employeeID),MAX(inputDate)
FROM `ordersPacked`
GROUP BY orderID
HAVING count(orderID)>1
这给了我:
orderID MIN(employeeID) MIN(inputDate) MAX(employeeID) MAX(inputDate)
654321 1 2018-10-30 16:12:59 5 2018-10-30 16:26:25
879546 1 2018-10-30 10:29:59 17 2018-10-30 16:42:02
我是说,是的,从技术上说,这是我想要的,但这不是一个合法的解决方案。有什么想法吗?
2条答案
按热度按时间1sbrub3j1#
可以聚合数据并将列连接在一起:
bfrts1fy2#
您可以在idorder上使用筛选器