我有一个简单的查询形式:
SELECT DISTINCT a, b, c
FROM MyTable
WHERE a = SomeConditionsEtc
等...
但我需要知道它将返回多少行。最初我这样做:
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
这是正确的方法还是有更好的方法?
答案 0 :(得分:1)
你的询问是直截了当的,做的工作,而且很简单,我敢肯定你可以把一些不必要的火箭科学加入其中,但是会过分夸大imho。除了你拥有的东西,你可以使用下面的group by
来说明我的意思,但你基本上会做同样的事情,获得独特的东西并计算它们。
SELECT COUNT(1)
FROM (SELECT a
FROM MyTable
WHERE a = 'a'
GROUP BY a, b, c) Temp