Я искал решение этой проблемы, но ни одно из решений не дает мне того, что мне нужно.
У меня есть три столбца: inputDate, orderID, employeeID.
Я хочу выяснить, повторяется ли orderID, и я хочу выяснить, какие 2 (или более) идентификатора сотрудника одновременно вводят этот заказ и когда.
Пример данных:
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
OrderID 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
Я имею в виду, да, это технически то, что я ищу, но это не законное решение. Есть идеи?