distinct只對一列去重 Oracle很大的表distinct查詢?
Oracle很大的表distinct查詢?獨特的機制是兩個值逐個比較,需要遍歷整個表。如果桌子太大,那就是一場災難。先統(tǒng)計后查詢分組,即先索引后查詢。桌子越大,效率越高。許多Oracle項目禁止使用d
Oracle很大的表distinct查詢?
獨特的機制是兩個值逐個比較,需要遍歷整個表。如果桌子太大,那就是一場災難。
先統(tǒng)計后查詢分組,即先索引后查詢。桌子越大,效率越高。
許多Oracle項目禁止使用distinct語句,所有語句都由group by替換。在這種情況下,兩個表之間的關系通常是一對多的關系,因此會出現重復。在這種情況下,通常需要使用子查詢根據規(guī)則進行重復,然后再次關聯才能得到準確的數據。但是,子查詢重復數據消除的邏輯需要基于您自己的業(yè)務。讓我給你一個隨機的例子:假設表a與表B相關聯(關聯的列是a),但是表B(列a、B、c)中有一些粒度重復,我想在a.a=B.a上重復select*from tableA ajoin(select distinct a、B、c tableb)B