sql - 为什么我的查询没有给出正确的计数和最大值?
问题描述
发送日期、打开总数、上次打开日期(如果有打开)、总点击次数、上次点击日期(如果有打开)
create table TBLA(Email text, SendID text, SendDate date, OpenDate date, ClickDate date);
insert into TBLA values("aaa@gmail.com", "ABCD1234", "8/1/2019",'1/8/2019',"8/1/2019");
insert into TBLA values("aaa@gmail.com", "ABCD1234", "8/1/2019",'2/8/2019',"");
insert into TBLA values("aaa@gmail.com", "ABCD1234", "8/1/2019",'3/8/2019',"8/3/2019");
insert into TBLA values("bbb@gmail.com", "ABCD1234", "8/1/2019",'1/8/2019',"");
insert into TBLA values("bbb@gmail.com", "ABCD1234", "8/1/2019",'2019/8/15',"8/15/2019");
insert into TBLA values("ccc@gmail.com", "ABCD1234", "8/1/2019","","");
insert into TBLA values("ddd@gmail.com", "ABCD1234", "8/1/2019","","");
insert into TBLA values("aaa@gmail.com", "xyz123", "8/2/2019","8/2/2019","8/2/2019");
insert into TBLA values("aaa@gmail.com", "xyz123", "8/2/2019","8/15/2019","");
insert into TBLA values("bbb@gmail.com", "xyz123", "8/2/2019","","");
insert into TBLA values("ccc@gmail.com", "xyz123", "8/2/2019","8/5/2019","8/5/2019");
select SendID," ", SendDate," ",count(OpenDate), " ", max(OpenDate), " ", count(ClickDate), " ", max(ClickDate)
from TBLA
where SendID = "ABCD1234" AND (OpenDate<>"" AND ClickDate<>"");
count(OpenDate) 必须为 5,max(OpenDate) 必须为 8/15/2019。计数(点击日期)必须为 3。
解决方案
正如@nagarwal 指出的那样,存在数据类型问题。日期字段被声明为日期,但接收字符串作为输入。由于您是手动输入数据,我认为只需使用此“YYYY-MM-DD”语法作为日期即可。
推荐阅读
- typescript - TypeScript 没有看到在变量中执行了 undefined\null 值检查
- godot - 从 2D 编辑器添加不同的布局选项
- html - 如何在网页上显示搜索结果片段
- splunk - 来自通用转发器的 Splunk 熟格式
- rust - 使用 actix-web 2.0 提供静态文件
- java - 为什么使用多线程时静态代码中的 Class.forName() 会终止进程?
- flutter - 如何使用“flutter_open_whatsapp”包发送图像?
- python - 创建一个在每个块上循环的网格系统?
- r - 我想使用 R 和栅格数据在很长一段时间内确定行政级别的每日温度
- python - 引发 NotImplementedError NotImplementedError