0

我有一个这种形式的简单查询:

SELECT DISTINCT a, b, c
FROM MyTable
WHERE a = SomeConditionsEtc

ETC...

但我需要知道它将返回多少行。最初我是这样做的:

SELECT COUNT(DISTINCT a)
FROM MyTable
WHERE a = SomeConditionsEtc

但是,如果a包含另一个不包含的重复项,则这是不可靠的。所以现在我使用嵌套查询:

SELECT COUNT(*)
FROM (SELECT DISTINCT a, b, c
      FROM MyTable
      WHERE a = SomeConditionsEtc) AS Temp

这是正确的方法还是有更好的方法?

4

1 回答 1

1

您的查询直截了当,完成了工作,而且很简单,我相信您可以在其中加入一些不必要的火箭科学,但恕我直言。除了你所拥有的,你可以使用group by下面的类似来说明我的意思,但你基本上会做同样的事情,获取唯一性并计算它们。

SELECT COUNT(1)
FROM (SELECT a
        FROM MyTable
        WHERE a = 'a'
        GROUP BY a, b, c) Temp
于 2013-06-07T15:38:36.123 回答