我正在尝试计算Sybase ISQL 9数据库中列“ a”和“ b”中具有不同值的行数。
我的意思是,以下数据集将产生答案“ 4”:
b1 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)
但是我想知道是否有一种更整洁的方式构造此查询?
怎么样:
SELECT COUNT(*)
FROM (SELECT DISTINCT a, b FROM MyTable)
Run Code Online (Sandbox Code Playgroud)
有关为何无法以更简单的方式完成此操作的更多信息(除了连接字符串,如在其他答案中指出的那样),您可以参考以下Google Answers文章:Sql Distinct Count。