hibernate中去重統計資料

2021-08-27 22:23:31 字數 536 閱讀 7307

專案用的是hibernate, 要求dao中不能使用原生的sql, 要用hql, 不熟, 遇到了很多問題

1. 去重統計問題

需求: 查出某張表中某個欄位的個數, 需要去重.

hql :select count(distinct s.teacher.id) from student as s

注意: distinct 去重, 與字段之間不能有 ( , 否則會報錯

2. 將 null 值轉為 0

需求: 做統計時, 如果沒有資料, 正常的sum將返回 null , 但是需要返回 0 , 此時可以用 coalesce() 函式

hql : select sum(s.score) from student s // 此時, 如果沒查到資料, 返回 null 值

select coalesce(s.score, 0) from student s; // 經過此函式, 將返回 0

coalesce() 函式返回的是第乙個非 null 值, 例如 : coalesce(null, null ,1, 8, null) 將返回 1,

陣列中去重

在js陣列中,我們都會遇到想要對陣列中重複的數進行檢測,例如將乙個陣列重複的數進行檢測並將其返回,剛開始我做出來如下 但是得出的結果是將遇到第乙個重複的數字全部列印出來,並沒有達到理想的效果,查詢資料後缺了最重要的東西,如indexof 如圖所示 newarr.indexof arr i 1,其中賦...

list中去重的問題

三種去重的方法 1 list中的元素實現iequatabe介面,並提供equals方法和gethashcode方法。2 使用表示式 csharp view plain copy users.where x,i users.findindex z z.name x.name i user.where ...

mysql中去重 distinct 用法

在使用mysql時,有時需要查詢出某個欄位不重複的記錄,這時可以使用mysql提供的distinct這個關鍵字來過濾重複的記錄,但是實際中我們往往用distinct來返回不重複欄位的條數 count distinct id 其原因是distinct只能返回他的目標字段,而無法返回其他字段,例如有如下...