SELECT GROUP BY 查询产生的组数

SELECT number of groups resulted from a GROUP BY query

我尝试了以下查询 select GROUP BY 查询产生的组数:

SELECT count(*)
FROM (
        SELECT count(*)
        FROM MyTable
        WHERE Col2 = 'x'
        GROUP BY Col1
     )

很遗憾,此查询无效:Incorrect syntax near ')'.

注意:我只想得到一行(我已经找到了结果乘以 n 的解决方案,其中 n = 组数)。

SELECT count(*)
FROM (
        SELECT 1 as dummy
        FROM MyTable
        WHERE Col2 = 'x'
        GROUP BY Col1
     ) dt

子查询不用统计行数,反正结果都是一样的

SELECT COUNT(*)
FROM (
    SELECT value = COUNT(*)
    FROM MyTable
    WHERE Col2 = 'x'
    GROUP BY Col1
) е

但我认为 - 你需要尝试这个查询 -

SELECT COUNT(DISTINCT Col1)
FROM MyTable
WHERE Col2 = 'x'

您必须为列和表命名...

SELECT count(*) Total
FROM (
        SELECT count(*) Groups
        FROM MyTable
        WHERE Col2 = 'x'
        GROUP BY Col1
     ) a