繁体   English   中英

日期范围的计数计算

[英]Counts calculation for date range

我有一张表格,我需要在其中获取针对每个步骤提出的问题数量以及在特定日期回答了这些问题中的多少。 我需要有关 sql 查询的帮助

date               step              questions                 answers
01/01/2022         Bio-data          What is your name         John
01/01/2022         Bio-data          What is your dob          NULL
01/01/2022         Bio-data          What is your name         John
01/01/2022         Bio-data          What is your dob          NULL
01/02/2022         Registration      What is your name         John
01/02/2022         Registration      What is your address      Newyork
01/02/2022         Registration      What is your number       Null
01/02/2022         Registration      What is your name         John
01/02/2022         Registration      What is your address      Newyork
01/02/2022         Registration      What is your number       Null

结果集:

我需要对日期 01/01/2022 步骤生物数据进行计数,提出了两个独特的问题,只有一个得到了回答。

我需要 2022 年 1 月 2 日注册步骤的计数 提出了三个独特的问题,但只回答了两个。

create table QuestionAnswers (
   Date datetime,
   Step char(50),
   Question char(50),
   Answer char(50) NULL)

insert into QuestionAnswers values 
('2022-01-01',         'Bio-data',          'What is your name',         'John'),
('2022-01-01',         'Bio-data',          'What is your dob',          NULL),
('2022-01-01',         'Bio-data',          'What is your name',         'John'),
('2022-01-01',         'Bio-data',          'What is your dob',          NULL),
('2022-01-02',         'Registration',      'What is your name',         'John'),
('2022-01-02',         'Registration',      'What is your address',      'Newyork'),
('2022-01-02',         'Registration',      'What is your number',       NULL),
('2022-01-02',         'Registration',      'What is your name',         'John'),
('2022-01-02',         'Registration',      'What is your address',      'Newyork'),
('2022-01-02',         'Registration',      'What is your number',       NULL);


with
GrupedByAnswers as (
   select 
      [Date], 
      Step,
      Question,
      case when Answer is null then 'No' else 'Yes' end IsAnswered
   from QuestionAnswers)
select 
   [Date], Step, Question, IsAnswered, count(*) [Count]
from GrupedByAnswers
group by [Date], Step, Question, IsAnswered
日期 问题 已回答 数数
2022-01-01 00:00:00.000 生物数据 你是做什么工作的 2个
2022-01-01 00:00:00.000 生物数据 你叫什么名字 是的 2个
2022-01-02 00:00:00.000 登记 你的地址是什么 是的 2个
2022-01-02 00:00:00.000 登记 你叫什么名字 是的 2个
2022-01-02 00:00:00.000 登记 你的号码是多少 2个

为了更好地理解问题,最好将预期结果集作为示例而不是文本描述。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM