SELECT GROUP查询生成的组数

D.R*_*.R. 3 sql t-sql sql-server sql-server-2014

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

SELECT count(*)
FROM (
        SELECT count(*)
        FROM MyTable
        WHERE Col2 = 'x'
        GROUP BY Col1
     )
Run Code Online (Sandbox Code Playgroud)

不幸的是,这个查询无效:Incorrect syntax near ')'..

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

Dev*_*art 9

SELECT COUNT(*)
FROM (
    SELECT value = COUNT(*)
    FROM MyTable
    WHERE Col2 = 'x'
    GROUP BY Col1
) ?
Run Code Online (Sandbox Code Playgroud)

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

SELECT COUNT(DISTINCT Col1)
FROM MyTable
WHERE Col2 = 'x'
Run Code Online (Sandbox Code Playgroud)

  • 你的第二个问题需要一个upvote! (2认同)

jar*_*rlh 7

SELECT count(*)
FROM (
        SELECT 1 as dummy
        FROM MyTable
        WHERE Col2 = 'x'
        GROUP BY Col1
     ) dt
Run Code Online (Sandbox Code Playgroud)

无需计算子查询中的行,结果无论如何都是相同的.