sql中的一个列条件

Mik*_*lov 0 sql aggregate-functions

我有一张桌子:

[letter] [Name]  [status]  [price]
      A    row1       1        11
      A    row1       1        15
      B    row2       2         9
      B    row2       3        23
      B    row2       3        30
Run Code Online (Sandbox Code Playgroud)

并希望选择这样的数据:

 SELECT letter, Name, 
    COUNT(*),
    CASE WHEN price>10 THEN COUNT(*) ELSE NULL END
    GROUP BY letter, Name
Run Code Online (Sandbox Code Playgroud)

结果是:

 A    row1     2      2 
 B    row2     1      null 
 B    row2     2      2 
Run Code Online (Sandbox Code Playgroud)

但我想要这种格式:

 A    row1      2     2 
 B    row2      3     2
Run Code Online (Sandbox Code Playgroud)

请帮我修改我的查询

Dam*_*ver 6

关.可能想要这个:

SELECT letter, Name, 
  COUNT(*),
  SUM(CASE WHEN price>10 THEN 1 ELSE 0 END)
FROM TableThatShouldHaveAppearedInTheQuestionInTheFromClause
GROUP BY letter, Name
Run Code Online (Sandbox Code Playgroud)

应该管用.假设第四列的意图是返回每个组内的行数,price大于10.它也可以做到这一点作为一个COUNT()CASE然后返回非NULLNULL对应该和不应该算作行的结果,但我觉得上面的形式更容易快速推理.