Mysql计算错误

标签 mysql database

我修复了最后一个问题,但现在还有一些其他问题:我以这种格式编辑了我的查询。但是,我仍然有 1 个大问题 - PU_1day 和 PU_7day 计算不正确:每行中附加“1”(当 true 为 2 时为 3,当 true 为 0 时为 1)。我该如何解决这个问题? :(

SELECT u.date, 
       u.des_channel, 
       u.des_type, 
       u.country,
       count(distinct(u.id)) as Reg_n, 
       sum(if((u.date=bp.date)*(u.id=bp.user_id),bp.o_outcome,0)) as P_$,
       sum(if((u.date=bp.date)*(u.id=bp.user_id),1,0)) as P_n,
       count(distinct(if((u.date=bp.date)*(u.id=bp.user_id),bp.user_id,0))) as PU_1day,
       count(distinct(if(truncate(timestampdiff(hour,u.datetime,bp.datetime)/24,0)<7,bp.user_id,0))) as PU_7day
FROM mayadata.users u 
left join mayadata.billing_pays bp
       on u.id=bp.user_id
WHERE  u.country in ('TH','ZA','ID','IN','NG','MY') and
       truncate(timestampdiff(hour,u.datetime,bp.datetime)/24,0)<7 and 
       u.date>='2011-01-01' 
GROUP BY u.date, u.des_channel, u.des_type

最佳答案

您能否尝试将 PU_1day 和 PU_7day 计算表达式中的第二个参数从 0 替换为 null,如下所示:

SELECT u.date, 
       u.des_channel, 
       u.des_type, 
       u.country,
       count(distinct(u.id)) as Reg_n, 
       sum(if((u.date=bp.date)*(u.id=bp.user_id),bp.o_outcome,0)) as P_$,
       sum(if((u.date=bp.date)*(u.id=bp.user_id),1,0)) as P_n,
       count(distinct(if((u.date=bp.date)*(u.id=bp.user_id),bp.user_id,null))) as PU_1day,
       count(distinct(if(truncate(timestampdiff(hour,u.datetime,bp.datetime)/24,0)<7,bp.user_id,null))) as PU_7day
FROM mayadata.users u 
left join mayadata.billing_pays bp
       on u.id=bp.user_id
WHERE  u.country in ('TH','ZA','ID','IN','NG','MY') and
       truncate(timestampdiff(hour,u.datetime,bp.datetime)/24,0)<7 and 
       u.date>='2011-01-01' 
GROUP BY u.date, u.des_channel, u.des_type

关于Mysql计算错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34901494/

相关文章:

c# - 将数据库中的数据限制显示到特定行

java - 从 Felix 内部嵌入 Java DB?

php - 警告:mysqli_query():无法在第6行的C:\…\localweb\test-pagini.php中获取mysqli

sql-server - 数据库代理键名称 : Product. ProductId 与 Product.Id 与 Product.Product_Id

java - 将行插入 MySQL 数据库

mysql - 将 MySQL 连接到 Ruby on Rails - ActiveRecord::ConnectionNotEstablished

C++ Visual Studio DLL 文件

c# - 如何使用 C# 将数据从另一个表单调用到文本框?

python - 使用 near 的正确语法

php - 如果用户单击事件按钮,则停止插入