UserGroup by & Order by 以过滤 MySQL 查询



我编写了一个查询,将列中的绿色状态和红色状态相加,并根据节点名称对它们进行分组。

SELECT `Node`, Date(`DOR`) as "Date of Report",
SUM(CASE WHEN `Color` = 'Green' THEN 1 ELSE 0 END) 'Pass'
, SUM(CASE WHEN `Clor` = 'Red' THEN 1 ELSE 0 END) 'Fail'
, SUM(CASE WHEN `Color` = 'Green' or `Color` = 'Red' THEN 1 ELSE 0 END) 'Total Checks'
FROM Monitor Where date(`TOI`) >= DATE(NOW()) - INTERVAL 7 DAY
Group by `Node`

如何过滤出Red为0的结果(我不想显示它是否为0,因为不需要注意(,并根据Reds计数按Desc顺序排序,从而使查询变得更好?

谢谢,

只是为了回答您关于筛选Reds=0&红色计数排序下降:

SELECT `Node`, Date(`DOR`) as "Date of Report",
SUM(CASE WHEN `Color` = 'Green' THEN 1 ELSE 0 END) as Pass
, SUM(CASE WHEN `Clor` = 'Red' THEN 1 ELSE 0 END) as Fail
, SUM(CASE WHEN `Color` = 'Green' or `Color` = 'Red' THEN 1 ELSE 0 END) as Total Checks
FROM Monitor Where date(`TOI`) >= DATE(NOW()) - INTERVAL 7 DAY
Group by `Server`
HAVING Fail > 0
order by Reds desc

但是,正如Tim所提到的,您在查询中遇到了问题,比如,您正在按服务器分组,但随后选择了NodeDOR

尝试包括表结构&样本数据,以便我们能够更好地理解问题&因此,为您提供正确的答案

最新更新