簡述問題“統計最新時刻處於某一狀態的設備的數量” 1. 首先子查詢結果,可以看到每個設備最新的狀態信息 2.1 在子查詢的基礎上,對設備狀態進行分組,進行統計每個狀態的設備數量 2.1.1 可以看到處於'火警'狀態的數量是2,沒有問題,但是看下一張圖 2.1.2 可以看到處於'故障'狀態的數量是(n ...
簡述問題“統計最新時刻處於某一狀態的設備的數量”
1. 首先子查詢結果,可以看到每個設備最新的狀態信息
2.1 在子查詢的基礎上,對設備狀態進行分組,進行統計每個狀態的設備數量
2.1.1 可以看到處於'火警'狀態的數量是2,沒有問題,但是看下一張圖
2.1.2 可以看到處於'故障'狀態的數量是(n/a),此處便出現問題,如果你將此值返回,service層則會報nullpointexception,進行try...catch可以解決
serviceImpl層處理方式
2.2 在子查詢的基礎上,不進行分組,直接統計每個狀態的數量信息,可以得到正確結果,count如果沒有查詢到數據,則返回的預設值是0(火警的就不再演示)
結論:
1.子查詢中:group by分組和order by排序如果一起使用的話,進行排序的是分組之後的數據
2.外層查詢:當進行分組之後進行count(*)查詢,當查詢不到時,返回的預設值是(n/a),需要在邏輯層進行判斷;
不進行分組,使用count(*)查詢,此時查詢不到的話,返回的預設值是0。