0

私は2つのテーブルアプリケーションとリードを持っています

アプリケーションテーブル

submitDate | fName | lName
2010-11-15    joe    smith
2010-11-16    joe    smith
2010-11-15    joe    smith

リードテーブル

submitDate | click | state
2010-11-15    1      ca
2010-11-16    1      ca
2010-11-16    1      ca
2010-11-15    1      ca
2010-11-15    1      ca
2010-11-15    1      ca
2010-11-15    1      ca
2010-11-15    1      ca

この結果を返すクエリが欲しい

submitDate | application | clicks | percent
2010-11-15    2            6          33%
2010-11-16    1            2          50%

私は以下を試しました

SELECT `submitDate` , count(`submitDate`)  AS 'comp',(select sum(`click`) from `leads`

 WHERE `submitDate` between '2010-11-15' AND '2010-11-16' group by `submitDate`)as

 'clicks'  from `applications` WHERE `submitDate` between '2010-11-15' AND

 '2010-11-16' group by `submitDate`

これはエラーを返します

#1242 - Subquery returns more than 1 row

そして、以下を試しました

SELECT `leads`.`submitDate` , count(`leads`.`submitDate`) 
 AS 'application',sum(`click`) as 'clicks'  
from `applications`,`leads` WHERE `leads`.`submitDate` between 
'2010-11-15' AND '2010-11-16' group by `leads`.`submitDate`

これにより、次の結果が返されます

submitDate | application | clicks
2010-11-15    60           60
2010-11-16    6            6

リードテーブルには22列/20=2010-11-15および22010-11-16上記のテーブルと同じアプリケーションテーブルがあります

長い説明で申し訳ありませんが、明確にするために

何か案が?

アプリケーション/リードを分割した新しいフィールドパーセントを追加すると、結果は4列になります

前もって感謝します

4

3 に答える 3

0
select d.date, coalesce(a.count, 0) as applications, coalesce(b.count, 0) as clicks
from 
(
    select date from applications
    union
    select date from leads
) d
left outer join (
    select date, count(*) as count
    from applications 
    group by date
) a on d.date = a.date
left outer join (
    select date, count(*) as count
    from leads
    group by date
) b on d.date = b.date
于 2010-11-17T16:23:02.203 に答える
0
select a.submitdate
, count(a.submitdate)
, (select sum(clicks) from leads where submitdate = a.submitdate) 
, count(a.submitdate)/(select sum(clicks) from leads where submitdate = a.submitdate) percent
from applications a
group by a.submitdate;
于 2010-11-17T16:29:48.153 に答える
0
SELECT DISTINCT a.submitDate,
  (SELECT count(*) FROM applications GROUP BY submitDate) as App,
  (SELECT count(*) FROM leads        GROUP BY submitDate) as Leads

唯一の注意点はwhere、サブクエリを含め、必要に応じて多数のを含めることです。

于 2010-11-17T16:33:55.810 に答える