簡體   English   中英

計算多個不同列的行

[英]Counting the rows of multiple distinct columns

我正在嘗試計算Sybase ISQL 9數據庫中列“ a”和“ b”中具有不同值的行數。

我的意思是,以下數據集將產生答案“ 4”:

a b

1 9 2 9 3 8 3 7 2 9 3 7

類似於以下語法的東西會很好:

SELECT COUNT(DISTINCT a, b) FROM MyTable

但這是行不通的。

我有一個解決方案:

SELECT COUNT(*) FROM
  (SELECT a, b 
     FROM MyTable 
    WHERE c = 'foo'
    GROUP BY a, b) SubTable

但是我想知道是否有一種更整潔的方式構造此查詢?

怎么樣:

SELECT COUNT(*)
FROM (SELECT DISTINCT a, b FROM MyTable)

有關為何無法以更簡單的方式完成此操作的更多信息(除了連接字符串,如在其他答案中指出的那樣),您可以參考以下Google Answers文章: Sql Distinct Count

您可以將a和b一起連接成1個這樣的字符串(TSQL,希望在Sybase中非常相似:

SELECT COUNT(DISTINCT(STR(a) + ',' + STR(b)))
FROM @YourTable

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM