对于以下查询,MAX函数似乎完全被忽略。 MAX函数对查询结果没有影响
SELECT alarm_severity_id
FROM alarm_notification
WHERE alarm_life_cycle_id = 25
having MAX(event_timestamp);
答案 0 :(得分:5)
这是您的查询:
SELECT alarm_severity_id
FROM alarm_notification
WHERE alarm_life_cycle_id = 25
HAVING MAX(event_timestamp);
您的HAVING
子句说:取最大时间戳。如果最大值不等于零或NULL,那么一切都很好。这完全等同于:
HAVING MAX(event_timestamp) <> 0
我怀疑你想要:
SELECT alarm_severity_id
FROM alarm_notification
WHERE alarm_life_cycle_id = 25
ORDER BY event_timestamp DESC
LIMIT 1;
编辑:
要优化效果,请在alarm_life_cycle_id
和event_timestamp
上创建索引:
create index alarm_notification_alci_et on alarm_notification(alarm_life_cycle_id, event_timestamp)
答案 1 :(得分:3)
having MAX(event_timestamp) > 100
group by
MAX
order by
+ limit 1
)。答案 2 :(得分:2)
您的查询不完整,您需要使用运算符和值&#34;具有&#34;声明,如
HAVING MAX(event_timestamp) = 100
你究竟想做什么?