我在 BD2 中有以下 SQL 语句,返回下表
SELECT
c.CREATEDATE AS "Data e Hora do Alerta"
,c.SENDFROM AS "Enviado Por"
,c.SENDTO AS "Para"
,c.SUBJECT AS "Assunto"
FROM M.LOG c
WHERE c.SENDFROM = '[email protected]'
AND c.SUBJECT = 'ALERTA - SLA estourado'
AND c.ID = '4355070'
但是,我只需要找到的最小日期和时间,在打印输出中以黄色突出显示
我过滤掉了 c.ID = '4355070' 仅用于测试。
我有几个有 N 行的 ID,想法是带来每个 ID 的最小日期/时间值
我已经尝试使用 GROUP BY ,但“To”列具有不同的值
我需要获取第一个警报发出的第一个日期/时间以及“收件人”发送给谁
谢谢
您可以使用子查询,但如果每个 ID 都具有相同的最小日期,则可以返回多个条目:
SELECT c.CREATEDATE AS "Data e Hora do Alerta",
c.SENDFROM AS "Enviado Por",
c.SENDTO AS "Para",
c.SUBJECT AS "Assunto"
FROM M.LOG c
WHERE c.CREATEDATE =
(SELECT MIN(c2.CREATEDATE) FROM M.LOG c2 WHERE c2.ID = c.ID);
Group by 仍然是你的朋友。您可能需要更改 SELECT 中的哪些列具有聚合函数,例如最大值(),最小值(),计数()。
SELECT MIN(c.CREATEDATE) AS "Data e Hora do Alerta",
c.SENDFROM AS "Enviado Por",
c.SENDTO AS "Para",
c.SUBJECT AS "Assunto"
FROM M.LOG c
GROUP BY c.ID
ORDER BY MIN(c.CREATEDATE);
您可能需要慢慢添加列并排除故障。
SELECT c.ID, MIN(c.CREATEDATE)
FROM M.LOG c
GROUP BY c.ID
ORDER BY MIN(c.CREATEDATE) DESC;