Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 加入多个模型';使用rails的子查询_Mysql_Ruby On Rails_Rails Activerecord - Fatal编程技术网

Mysql 加入多个模型';使用rails的子查询

Mysql 加入多个模型';使用rails的子查询,mysql,ruby-on-rails,rails-activerecord,Mysql,Ruby On Rails,Rails Activerecord,我试图用最干净、最简单的方式在rails中编写以下查询 SELECT * FROM (SELECT DATE(logTime) as Date, SUM(CASE WHEN duration/60 <= 2 THEN 1 ELSE 0 END) AS d_0_2, SUM(CASE WHEN duration/60 > 2 AND duration/60 <=5 THEN 1 ELSE 0 END) AS d_2_5,

我试图用最干净、最简单的方式在rails中编写以下查询

SELECT *
FROM 
    (SELECT DATE(logTime) as Date,
            SUM(CASE WHEN duration/60 <= 2 THEN 1 ELSE 0 END) AS d_0_2,
            SUM(CASE WHEN duration/60 > 2 AND duration/60 <=5 THEN 1 ELSE 0 END) AS d_2_5,
            SUM(CASE WHEN duration/60 > 5 AND duration/60 <= 10 THEN 1 ELSE 0 END) d_5_10,
            SUM(CASE WHEN duration/60 > 10 AND duration/60 <= 15 THEN 1 ELSE 0 END) d_10_15,
            SUM(CASE WHEN duration/60 > 15 THEN 1 ELSE 0 END) d_15_9999
    FROM session_logs
    WHERE DATE(logTime) > "2014-04-1" AND isClosed = 1
    GROUP BY DATE(logTime)) l1
LEFT JOIN
    (SELECT logDate AS Date, potential, conversion, bounce, newCustomers, repeatCustomers, averageTime
    FROM metrics
    WHERE client_id = 1 AND logDate BETWEEN "2014-01-01" AND "2015-05-04"
    GROUP BY logDate) l2 ON l1.date = l2.date
,

dwell=SessionLog。选择(“日期(logTime)”作为LogDate,
总和(如果持续时间/60 2和持续时间/60 5和持续时间/60 10和持续时间/60 15,则为1,否则为0结束)d_15_9999”)。
其中(“客户端id=?和isClosed=1,日期(日志时间)介于?和?之间,客户端id,开始日期,结束日期)
但是我想不出我应该如何加入那些有日期的集合

最好的办法是什么

谢谢

metric = Metric.select("potential,conversion,logDate,bounce,newCustomers,repeatCustomers,averageTime").
                where("client_id = ? and logDate between ? and ?",client_id,startDate,endDate)
dwell = SessionLog.select("DATE(logTime) as LogDate,
                                   SUM(CASE WHEN duration/60 <= 2 THEN 1 ELSE 0 END) AS d_0_2, 
                                   SUM(CASE WHEN duration/60 > 2 AND duration/60 <=5 THEN 1 ELSE 0 END) AS d_2_5,
                                   SUM(CASE WHEN duration/60 > 5 AND duration/60 <= 10 THEN 1 ELSE 0 END) d_5_10,
                                   SUM(CASE WHEN duration/60 > 10 AND duration/60 <= 15 THEN 1 ELSE 0 END) d_10_15,
                                   SUM(CASE WHEN duration/60 > 15 THEN 1 ELSE 0 END) d_15_9999").
                            where("client_id = ? AND isClosed = 1 AND DATE(logTime) between ? and ?", client_id, startDate, endDate)