-3

我已经列出了实际的表格。由此,我希望得到预期的结果。

在此处输入图像描述

4

2 回答 2

0

尝试这个

CREATE TABLE demo (
jobPreference varchar(255),
Triggered varchar(255),
Success varchar(255),
opened varchar(255));


INSERT INTO demo(jobPreference,Triggered,Success,opened) VALUES ('email-pwd reset', 'yes', 'success','yes');
INSERT INTO demo(jobPreference,Triggered,Success,opened) VALUES ('email-pwd reset', 'yes', 'success','yes');

INSERT INTO demo(jobPreference,Triggered,Success,opened) VALUES ('email-pwd reset', 'yes', 'fail','no');
INSERT INTO demo(jobPreference,Triggered,Success,opened) VALUES ('email-statement', 'yes', 'success','no');
INSERT INTO demo(jobPreference,Triggered,Success,opened) VALUES ('email-EMI reminder', 'yes', 'fail','no');
INSERT INTO demo(jobPreference,Triggered,Success,opened) VALUES ('SMS-loan EMI', 'yes', 'fail','no');
INSERT INTO demo(jobPreference,Triggered,Success,opened) VALUES ('SMS-confirmation', 'yes', 'fail','no');
INSERT INTO demo(jobPreference,Triggered,Success,opened) VALUES ('SMS-confirmation', 'yes', 'success','yes');


select SUBSTRING(jobPreference,0,CHARINDEX('-',jobPreference,0)) as Splitted
        ,jobPreference
        ,count(case Triggered when 'yes' then 1 else null end) as TriggeredCount
        ,count(case Success when 'success' then 1 else null end) as SuccessCount
        ,count(case opened when 'yes' then 1 else null end) as openedCount 
from demo
group by jobPreference

演示:https ://rextester.com/ANPN26483

于 2019-09-13T08:31:01.197 回答
0

您的问题不是您在问题中写的。您首先要学习如何规范化 SQL 或表格数据。当您应用第二范式时,此问题已解决。给定的链接提供了对标准化的更好理解。 SQL 表中的规范化

于 2019-09-13T06:29:57.687 回答