我需要帮助进行查询,所以我第一次找到了这个网站,并希望有人知道如何做到这一点。
让我们说我的数据库有3列(名称,类型和决策)。在“名称”字段中,有100条记录,可能存在重复项。有2种不同的类型(在线和离线),以及2种决定(匹配或不匹配)。
我需要的是计算每种类型的匹配和不匹配,按名称分组。
表格如下所示:
Name|Online Match Count|Online Mismatch Count|Offline Match Count|Offline Mismatch Count|
此外,如果任何字段的计数为0,我希望它也显示为0。
有人知道怎么做吗?我将不胜感激。
答案 0 :(得分: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