T-SQL 像字符串一样计数

Mar*_*ald 0 t-sql sql-server

这是我正在尝试使用的 select 语句,我正在尝试提取以短语 Unknown 开头的所有记录的计数,但在计数的右括号附近出现错误的语法错误。我如何以这种方式使用计数?

SELECT DISTINCT [ID], COUNT(ID), COUNT([NAME] LIKE 'Unknown%')
FROM table.foo
GROUP BY [ID]
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 5

你不需要SELECT DISTINCTGROUP BY. 只需使用 aCASE作为参数SUM()

SELECT ID, COUNT(ID), 
       SUM(CASE WHEN NAME LIKE 'Unknown%' THEN 1 ELSE 0 END)
FROM table.foo
GROUP BY ID;
Run Code Online (Sandbox Code Playgroud)