怎樣對多個欄位去重並計數

2021-09-19 10:23:12 字數 1361 閱讀 7061

distinct可以和count 一起使用,去重並計數:

count

()

但是一起使用時,後面不能有多個字段:

//不允許的寫法:

select

count

(distinct col1

,col2

,col3

,.......)

from

table

變通的方法:

一、將去重**放在後面。

select

count

(*)from

(select

distinct col1

,col2

,col3

from

table a

)二、把多個字段連成乙個字段。

相當於把多個欄位的字串連線起來: 

select

count

(distinct fcode

+cast

(fread_date

asvarchar(30

)))from

my_table

第二種方法雖然效率不高,但可以簡化sql語句。

參考:distinct可以和count 一起使用,去重並計數:

count

()

但是一起使用時,後面不能有多個字段:

//不允許的寫法:

select

count

(distinct col1

,col2

,col3

,.......)

from

table

變通的方法:

一、將去重**放在後面。

select

count

(*)from

(select

distinct col1

,col2

,col3

from

table a

)二、把多個字段連成乙個字段。

相當於把多個欄位的字串連線起來: 

select

count

(distinct fcode

+cast

(fread_date

asvarchar(30

)))from

my_table

第二種方法雖然效率不高,但可以簡化sql語句。

參考:

mysql根據多個欄位去重

現在在搞資料處理,裡面有個資料是根據兩個欄位來區別是不是一樣的,那如果在設計的時候沒有將那兩個字段設計成唯一主鍵,或者唯一索引,後續就要進行去重,上網查了好久,發現都沒有啥好的解決方法,後來想了下,將那兩個主鍵連線一下,然後group分組不就行了?雖然效能很弱雞,但是這個sql我又只是用一次而已。s...

Oracle如何實現多個欄位去重

我們通常使用distinct關鍵字來去除重覆記錄,還有沒有其他辦法呢?通過查詢資料,確認group by也可以,利用rowid也可以實現功能。其中,group by是用來分組統計的,能用distinct的地方就不要用group by。下面我們看一下幾種方法具體如何實現,至於選用哪一種,主要還是看需求...

mysql去重欄位 mysql多字段去重,並計數

問 題 mysql版本5.5.42 有兩個表,表結構與資料如下 1 goods表 create table goods id int 10 unsigned not null,product varchar 180 collate utf8mb4 unicode ci not null,size v...