如何根据不同的标准获得多个计数

问题描述 投票:0回答:1

我需要帮助进行查询,所以我第一次找到了这个网站,并希望有人知道如何做到这一点。

假设我的数据库有3列(名称,类型和决策)。在“名称”字段中,有100条记录,可能存在重复项。有2种不同的类型(在线和离线),以及2种决定(匹配或不匹配)。

我需要的是计算每种类型的匹配和不匹配,按名称分组。

表格如下所示:

Name|Online Match Count|Online Mismatch Count|Offline Match Count|Offline Mismatch Count|

此外,如果任何字段的计数为0,我希望它也显示为0。

有人知道怎么做这个吗?我将不胜感激。

sql count
1个回答
1
投票

这是一种常见技术,称为数据透视查询。

SELECT
  Name,
  SUM(CASE WHEN Type='online' AND Decision='Match' THEN 1 ELSE 0 END) as "Online Match Count",
  SUM(CASE WHEN Type='online' AND Decision='Mismatch' THEN 1 ELSE 0 END) as "Online Mismatch Count",
  SUM(CASE WHEN Type='offline' AND Decision='Match' THEN 1 ELSE 0) as "Offline Match Count",
  SUM(CASE WHEN Type='offline' AND Decision='Mismatch' THEN 1 ELSE 0 END) as "Offline Mismatch Count"
FROM TableName
GROUP BY Name
© www.soinside.com 2019 - 2024. All rights reserved.