2011-04-15 39 views

回答

3
SELECT COUNT(1) 
    FROM (
    SELECT DISTINCT COLA, COLB 
     FROM YOUR_TABLE 
    ) 
+0

他需要每列的數量。 – 2011-04-15 13:48:48

+1

@James:OP表示他希望計算兩個列的不同組合,爲此我將包括COUNT。 – Chandu 2011-04-15 13:49:34

11
SELECT COUNT(*) 
FROM (
     SELECT DISTINCT a, b 
     FROM mytable 
     ) 
-3
SELECT COUNT(*) 
FROM (
     SELECT DISTINCT a, b 
     FROM mytable 
     ) As Temp 
+0

歡迎來到堆棧溢出。一般來說,如果您要爲此類較舊的問題提供新的答案,則應確保您的答案與現有答案明顯不同或優於現有答案。就目前而言,您的答案與先前的一個答案(給定或取得空格)完全相同,並且與另一個(「COUNT(1)」與「COUNT(*)」)基本相當。因此,重複別人已經說過的話,你不可能獲得許多獎勵。 – 2012-10-01 06:03:35

2

SELECT COUNT(DISTINCT COLA || COLB) 
FROM THE_TABLE 

http://www.sqlfiddle.com/#!4/c287e/2

+3

如果列首先不是字符串,那麼這將無法正常工作。如果有一行ColA =「abc」和ColB =「def」,另一行ColA =「ab」和ColB =「cdef」,它也會錯誤計數。他們將被計爲1,而他們應該被計爲2。 – 2012-10-01 05:59:41

0

Oracle數據庫中,你可以Concat的列,然後在該連接字符串計數像下面的另一種方法:

SELECT count(DISTINCT concat(ColumnA, ColumnB)) FROM TableX; 

I n MySql,你可以在count方法中添加列作爲參數。

SELECT count(DISTINCT ColumnA, ColumnB) FROM TableX; 
相關問題