0

この形式の簡単なクエリがあります。

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

それは正しいアプローチですか、それともより良い方法がありますか?

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 に答える