sql - 如何在聚合函数 SQL Server 中有一个 where 子句

标签 sql sql-server sql-server-2008 tsql

好的,我有一个看起来像这样的表:

ID   AMOUNT      PAID
1    50.00       Y
2    100.00      N
3    200.00      Y

我想看到类似的东西:

Total     Due Paid
350.00    1   2

所以我的 SQL 看起来像(在我的脑海中......它不是那样工作的,这就是我在这里的原因)

select sum(amount)
,count(paid where paid='y') as due
,count(paid where paid='n') as paid 
from sometable where something=somethingelse

最佳答案

select sum(amount) as total, 
       sum(case paid when 'N' then 1 else 0 end) as due, 
       sum(case paid when 'Y' then 1 else 0 end) as paid
from sometable where something=somethingelse

关于sql - 如何在聚合函数 SQL Server 中有一个 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13705532/

相关文章:

sql - 从日期范围内的表中删除数百万条记录

SQL Server 查询元素值的 xml 属性

sql-server - SQL Server 2008在创建新数据库时自动创建表

sql-server - 对于更便宜/更快的无写交易 : COMMIT or ROLLBACK?

sql - 从 sql 查询中排除所有结果的有效方法是什么?

sql - oracle - 根据非唯一字段的出现次数获取 1 或 0 条记录

sql - 如何在 PostgreSQL 中使用正则表达式将列输入限制为字母数字

sql-server - 规则已被弃用,取而代之的是什么呢(TSQL)?

c# - 如何为unicode字符串的存储过程中的参数添加前缀 'N'

sql-server - SQL Server 中的快照隔离