对同一字段的多个值进行聚合查询

0 sql-server pivot sql-server-2012

我使用的是 SQL-Server 2012,我有一张信用卡交易表,如下所示:

CardScheme  RespCode
=========================
Visa        Declined
MasterCard  Approved
MasterCard  Approved
MasterCard  Declined
Visa        Declined
MasterCard  Approved
MasterCard  Declined
Visa        Approved
Visa        Approved
MasterCard  Approved
Run Code Online (Sandbox Code Playgroud)

我需要编写一个查询以获得以下结果

CardScheme  Declined  Approved
==============================
Visa        2         2 
MasterCard  2         4
Run Code Online (Sandbox Code Playgroud)

请帮忙

Tar*_*ryn 5

由于您使用的是 SQL Server,因此您可以使用PIVOT函数将行转换为列:

select cardScheme, Declined, Approved
from yt
pivot
(
  count(RespCode)
  for RespCode in (Declined, Approved)
) piv;
Run Code Online (Sandbox Code Playgroud)

参见SQL Fiddle with Demo