1. 程式人生 > >sql語句中的count(distinct column)問題記錄

sql語句中的count(distinct column)問題記錄

閒話不多說,直接上乾貨。老帖們,切記不要隨意copy!copy有風險,發帖須謹慎!

按照慣性思維,統計一個欄位去重後的條數我們的sql寫起來如下:

select count(distinct column)from db.table

如果column欄位不是空值的時候,它是高效的,但是如果值全部為空,那麼我們的結果是什麼呢?如果你實驗了,沒錯,你沒有看錯,正如你實驗的一樣,結果就是0。這個問題怎麼解決呢?這裡我給出一個我改進後的使用方式:

select count(distinct case when trim(column) is null or trim(column) ='' then  ''1)from db.table

沒錯,就是當它為空串或者null的時候給它賦個新值,然後再進行正常的去重統計,結果ok。