SQL GROUP BY和SELECT中的FILTER

bumble_bee_tuna

如果我有以下示例数据:

╔══════════════╦══════════════════╦════════════╦═══════╗
║    Client    ║      con_id      ║ mat1_07_03 ║ Ccode ║
╠══════════════╬══════════════════╬════════════╬═══════╣
║ Clients Name ║ C13109BBFD511534 ║ $1,062.00  ║ NOFL  ║
║ Clients Name ║ C11AC9BBF74D6882 ║ $879.73    ║ NOFL  ║
║ Clients Name ║ C12A69BBF1ACB578 ║ $2,790.29  ║ NOFA  ║
║ Clients Name ║ C12A69BBF1ACB578 ║ $912.00    ║ NOFL  ║
║ Clients Name ║ C6B0CA1A767C9744 ║ $2,180.11  ║ NOFL  ║
║ Clients Name ║ C11AC9BBF74D6882 ║ $878.67    ║ NOFA  ║
║ Clients Name ║ C13B79BBF4F1F450 ║ $300.00    ║ NOFL  ║
║ Clients Name ║ C12A69BBF1ACB578 ║ $1,790.67  ║ NOFL  ║
║ Clients Name ║ CA6869E2FE38A449 ║ $240.00    ║ NOFA  ║
║ Clients Name ║ C46439FB0D847140 ║ $3,392.66  ║ NOFL  ║
║ Clients Name ║ C12A69BBF1ACB578 ║ $1,791.73  ║ NOFA  ║
║ Clients Name ║ C13B49BBF12ED236 ║ $0.00      ║ NOFL  ║
║ Clients Name ║ C12A69BBF1ACB578 ║ $879.73    ║ NOFL  ║
╚══════════════╩══════════════════╩════════════╩═══════╝

并应用以下查询:

SELECT 
     [Client]=MAX(m.Client)
    ,[CaseCount]=COUNT(m.con_id)
    ,[AmtInDispute]=CONVERT(char, SUM(Convert(money, m.mat1_07_03)), 101)
FROM lntmu11.matter m
GROUP BY m.con_id
ORDER BY COUNT(m.Client) DESC

我如何进一步对Ccode列进行分组以获取COUNT有多少行NOFANOFL

我想要的输出将显示为:

╔══════════╦═══════════╦═══════════════╦═══════════════╦══════════════╗
║  Client  ║ CaseCount ║ NOFACaseTotal ║ NOFLCaseTotal ║ AmtInDispute ║
╠══════════╬═══════════╬═══════════════╬═══════════════╬══════════════╣
║ Client A ║      3548 ║          2000 ║          1548 ║ 5,658,307.60 ║
║ Client B ║      3366 ║           100 ║          3266 ║ 2,885,649.48 ║
║ Client C ║      3014 ║           800 ║          2214 ║ 2,851,507.13 ║
║ Client D ║      2340 ║           340 ║          2000 ║ 3,467,207.12 ║
╚══════════╩═══════════╩═══════════════╩═══════════════╩══════════════╝
戈登·利诺夫

只需使用条件聚合:

SELECT m.Client, CaseCount = COUNT(m.con_id),
       CONVERT(varchar(255), SUM(Convert(money, m.mat1_07_03)), 101) as AmtInDispute
       sum(case when cCode = 'NOFA' then 1 else 0 end) as NOFACaseTotal,
       sum(case when cCode = 'NOFL' then 1 else 0 end) as NOFLCaseTotal,
FROM lntmu11.matter m
GROUP BY m.client
ORDER BY COUNT(m.Client) DESC;

注意:在转换为字符时,请始终包括长度(在T-SQL中)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SELECT CASE SQL 中的 Group BY

来自分类Dev

在使用SELECT *和GROUP BY的proc sql中,结果不会折叠

来自分类Dev

linq-to-sql:SELECT部分中的GROUP BY和MIN()

来自分类Dev

SQL GROUP BY和SUM

来自分类Dev

SQL Server中的CASE和GROUP BY

来自分类Dev

SQL 中 GROUP BY 和 STUFF 的替代方案

来自分类Dev

SQL MAX和GROUP BY与WHERE

来自分类Dev

SQL GROUP BY和事后减少

来自分类Dev

SQL group by和max等字段

来自分类Dev

SQL MAX和GROUP BY与WHERE

来自分类Dev

在 SQL 中的 GROUP BY 中求和

来自分类Dev

SQL中GROUP BY的基本用法

来自分类Dev

Vertica SQL中的Concat GROUP BY

来自分类Dev

Vertica SQL中的Concat GROUP BY

来自分类Dev

SQL在GROUP BY中执行计算

来自分类Dev

SQL-多重SELECT和GROUP BY以获取表的MIN(值)

来自分类Dev

SQL SELECT DISTINCT和GROUP BY查询不起作用

来自分类Dev

R等效于SQL SELECT COUNT(*)... GROUP BY

来自分类Dev

SQL SELECT COUNT GROUP BY-错误

来自分类Dev

如何使用GROUP BY修改SQL SELECT请求

来自分类Dev

GROUP BY SQL语句中的子SELECT

来自分类Dev

SQL SELECT COUNT GROUP BY-错误

来自分类Dev

SQL中的“ GROUP BY”和“ ORDER BY”有什么区别?

来自分类Dev

如何在Oracle SQL中执行复杂的MAX()和GROUP BY?

来自分类Dev

Oracle SQL 中的 GROUP BY 和 DECODE (ORA-00979)

来自分类Dev

Eloquent 中带有 GROUP BY 和 SUM 的 SQL 请求

来自分类Dev

通过不在GROUP中的过滤器过滤SQL GROUP

来自分类Dev

类似SQL的MAX和GROUP BY字典列表

来自分类Dev

SQL WHERE与乘法JOIN和GROUP BY