计算多个不同列的行

Ian*_*man 2 sql

我正在尝试计算Sybase ISQL 9数据库中列“ a”和“ b”中具有不同值的行数。

我的意思是,以下数据集将产生答案“ 4”:

b

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

类似于以下语法的东西会很好:

SELECT COUNT(DISTINCT a, b) FROM MyTable
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。

我有一个解决方案:

SELECT COUNT(*) FROM
  (SELECT a, b 
     FROM MyTable 
    WHERE c = 'foo'
    GROUP BY a, b) SubTable
Run Code Online (Sandbox Code Playgroud)

但是我想知道是否有一种更整洁的方式构造此查询?

Roe*_*ler 5

怎么样:

SELECT COUNT(*)
FROM (SELECT DISTINCT a, b FROM MyTable)
Run Code Online (Sandbox Code Playgroud)

有关为何无法以更简单的方式完成此操作的更多信息(除了连接字符串,如在其他答案中指出的那样),您可以参考以下Google Answers文章:Sql Distinct Count。