0

以下のようなテーブルが 1 つあります (MSSql)

Name  Status
----  -------
kmk   Success
kmk   Success
mvk   Fail
per   Success
Per   Fail
mvk   Fail

以下のような結果を与えるクエリが必要です

Name Status  Count
---- ------- -----
kmk  Success 2
kmk  Fail    0
mvk  Success 0
mvk  Fail    2
Per  Success 1
Per  Fail    1

私は試してみましgroup byたが、以下のような結果が得られました私のクエリは

(Select Name,[Status],COUNT([Status]) As Count From Checking group by [Status],Name)

Name Status  Count
---- ------- -----
kmk  Success 2
mvk  Fail    2
Per  Success 1
Per  Fail    1

いろいろ試してみました 質問させてください

4

1 に答える 1

2

以下を試すことができます。これは sqlite3 で動作し、SQL エンジンによっては、走行距離が異なる場合があります。

select
  name,
  "Success" as status,
  sum(case when status = "Success" then 1 else 0 end) as count
from checking group by name
union
select
  name,
  "Fail" as status,
  sum (case when status = "Fail" then 1 else 0 end) as count
from checking group by name;

SQLite3 での結果:

kmk|Fail|0
kmk|Success|2
mvk|Fail|2
mvk|Success|0
per|Fail|1
per|Success|1
于 2012-07-31T21:16:25.417 に答える