sql - 计算多个条件下的记录
问题描述
我的查询是计算表中发生的事务数。以下是我的查询:
select tt.transaction_key, tt.description, t.mode, count(t.TransactionType) as Frequency
from transaction_names tt left join
transaction_report_data t
on tt.transaction_key = t.TransactionType and
t.created >='2017-04-11' and t.created <= '2018-04-13'
group by tt.transaction_key, tt.description, t.mode;
我还需要仅成功或具有 t.status = 'success' 的事务数的计数/频率。
请帮助我如何调整这个“where”子句来计算这种类型的记录。
提前致谢。
解决方案
您可以使用聚合来做一个案例,如下所示
select
tt.transaction_key,
tt.description,
t.mode,
count(t.TransactionType) as Frequency,
Sum(case when t.status='success' then 1 else 0 end) as SuccessfulTransactions
from transaction_names tt left join
transaction_report_data t
on tt.transaction_key = t.TransactionType and
t.created >='2017-04-11' and t.created <= '2018-04-13'
group by tt.transaction_key, tt.description, t.mode;
推荐阅读
- swiftui - 如果其父级是 iOS 15 上的 TabView,则子视图中的 navigationBarTitle 无效
- sql - Teradata Studio Express 中的文本折叠
- windows-installer - 如何将 MSI 指向许可证服务器?
- flutter - 在两个模型 Dart 中搜索字符串序列的算法?
- node.js - Node js 公牛队列
- android - Jetpack Compose Kotlin 说
- angular - 如何使用由于 Angular 中的反引号导致的解决错误?
- javascript - React-Grid-Layout:将 React 组件用作网格子项时不起作用
- javascript - Typescript 缺少类型(类似于 array.prototype probs)TS2769
- c# - Renci.SshNet SshStream.Flush() 不工作