У меня есть таблица с именем ae_types
. Он содержит три поля, которые имеют отношение к моему вопросу:
aetId This is Auto Increment and is the Primary Key
aetProposalType Text field 5 characters long
aetDaysToWait Byte data type
aetProposalType
и aetDaysToWait
находятся в уникальном ключе, так что я гарантирую, что никогда не будет двух aetProposalType
с одним и тем же aetDaysToWait
.
Результат, который я ищу, - получить aetId
поля с наибольшим aetDaysToWait
для каждого aetProposalType
.
Ниже приведен запрос, который я предложил для достижения этой цели, но мне кажется, что он, возможно, излишне сложен и не очень красив.
SELECT ae_types.aetId AS lastEmailId, ae_types.aetProposalType
FROM ae_types INNER JOIN
(SELECT ae_types.aetProposalType, Max(ae_types.aetDaysToWait) AS MaxOfaetDaysToWait
FROM ae_types GROUP BY ae_types.aetProposalType) AS ae_maxDaysToWaitByProposalType
ON (ae_types.aetDaysToWait = ae_maxDaysToWaitByProposalType.MaxOfaetDaysToWait)
AND (ae_types.aetProposalType = ae_maxDaysToWaitByProposalType.aetProposalType);
Какие есть альтернативные решения и почему они будут лучше?
PS Если у вас есть какие-либо вопросы, пожалуйста, задавайте, и я буду рад попытаться дать ответ.