Учитывая эту схему, содержащую исходные данные
CREATE TABLE `sourceData` (
`eventDate` datetime NOT NULL,
`eventType` varchar(255) DEFAULT NULL,
`eventId` varchar(255) NOT NULL,
`eventDescription` varchar(255) NOT NULL,
`visitorId` varchar(255) NOT NULL,
`acountId` varchar(255) NOT NULL,
`eventCount` int(11) DEFAULT NULL,
`minutesOnPage` int(11) DEFAULT NULL,
`urlParameter` varchar(255) NOT NULL,
`visitorIpAddress` varchar(255) NOT NULL,
`eventDomain` varchar(255) NOT NULL,
`vistorUserAgent` text,
PRIMARY KEY (`eventDate`,`eventId`,`visitorId`,`accountId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
Используя эти данные, я хочу создать другую таблицу, содержащую последнее значение eventDescription для каждого eventId.Я создал следующий запрос для получения этого результата:
SELECT max(eventDate) as maxEventDate, eventDescription, eventId
FROM sourceData
GROUP BY eventId, eventDescription
ORDER by eventId;
Мой ожидаемый результат для этого состоял в том, что для каждого идентификатора события будет только 1 запись.Тем не менее, я получаю несколько записей для каждого события.Любые предложения о том, как я могу настроить свой запрос, чтобы получить желаемый результат?
+--------------+----------------------------------------------------------------------+-----------------------------+
| maxEventDate | eventDescription | eventId |
+--------------+----------------------------------------------------------------------+-----------------------------+
| 2019-06-25 | Settings - User Settings - New Password | _2SkneHp0dkIlHef52uPRGKaf34 |
| 2019-06-10 | Settings - User Settings_New Password | _2SkneHp0dkIlHef52uPRGKaf34 |
| 2019-06-21 | User Settings - New Password | _2SkneHp0dkIlHef52uPRGKaf34 |
| 2019-06-04 | Offer Tab_Makegood Missed Spots - Preempt(s)_Show All Buyer Demos | _3YDY4OVlw-L2OVSZruGcwATEcI |
| 2019-06-27 | Campaign Performance Details - Spot Detail - Back to Top | _4_61DOJgg2J6y0wGleGeu30J4w |
| 2019-06-21 | Spot Detail - Back to Top | _4_61DOJgg2J6y0wGleGeu30J4w