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