Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.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
SQL选择多个计数(*)输出_Sql - Fatal编程技术网

SQL选择多个计数(*)输出

SQL选择多个计数(*)输出,sql,Sql,我很难弄清楚如何才能得到一个查询,该查询提供了多少人在某个竞选活动中收到多少封信的数据。 喜欢 输出: 我编写的当前SQL用于从所有表中获取获取信息所需的所有数据 SELECT account.EXT_STRING0 as client_ID, account.EXT_STRING2 as Email, activity.TEMPLATE_NAME as Template_name, activity.NAME as campaign_name, activity.EXECUTION_ID,

我很难弄清楚如何才能得到一个查询,该查询提供了多少人在某个竞选活动中收到多少封信的数据。 喜欢 输出:

我编写的当前SQL用于从所有表中获取获取信息所需的所有数据

SELECT 
account.EXT_STRING0 as client_ID,
account.EXT_STRING2 as Email,
activity.TEMPLATE_NAME as Template_name,
activity.NAME as campaign_name,
activity.EXECUTION_ID, -- unique campaign sent mail id
activity.SEND_DATE,
Activity.OPEN_DATE,
Activity.CLICK_DATE
FROM  
    crmautomation.oocke1_account account 
Join 
    crmautomation.oocke1_activity activity 
    ON 
     (account.object_id = activity.rep_contact)
left JOIN 
    crmautomation.OBJ_VAL val1
       ON val1.obj_row_id = activity.CAMPAIGN_TYPE AND (val1.OBJ_VAL_ID in(4250950)) 
left JOIN 
    crmautomation.OBJ_VAL val2
       ON val2.obj_row_id = activity.CAMPAIGN_TYPE AND (val2.OBJ_VAL_ID in(4250951))
where activity.TEMPLATE_NAME= ('cabin_surprise_ne')
and activity.SEND_DATE >('2015.12.01')
我想了一些如何使用Group by获得电子邮件计数(*)-s的方法,但我不知道如何做到这一点

编辑: 下面是这个sql的输出

client_ID   Email              template_name      Execution_ID     Send_date
'343205'  random@gmail.com   Cabin_surprise_ne  0032-1fdsa-31    2015-12-14 23:08    

而且此邮件尚未打开

构造查询的一种方法如下:

with cte as (
      <your query here>
     )
select cnt, count(*) as numClients, min(client_id), max(client_id)
from (select client_id, count(activity.rep_contact) as cnt
      from cte
      group by client_id
     ) x
group by cnt
order by cnt;

我仍然不完全理解这个问题。您有两个
左连接到未使用的表。这些可能会被删除,但您没有在问题中提供足够的数据结构信息。

请将示例输入和输出添加到
group by
中。您需要将
count(*)
添加到select子句中。这是非常基本的sql。因为你不知道,我听到了这本书的好消息,在10分钟内自学SQL。你使用的是哪种DBMS?Sybase IQ Client 15.4好的,我将尝试找出答案,并在周末后回来提供更多信息,但感谢你到目前为止。虽然这可能回答了问题,任何未经最少解释就发布的代码,对于您的答案的未来读者来说,可能都不是很有用。对此我深表歉意,这一点仍然是新的。基本上,在当前查询中,按客户机ID添加计数和groub,并使用另一个计数创建外部查询,但此时间组通过电子邮件…在外部查询中,您仅选择上一个计数的总和。希望这是有意义的。你可以通过点击左下角的
edit
按钮来编辑你的答案,并添加该文本,我认为这已经改善了你的答案(比将其作为注释更好)
select count(*) count2, sum(a.count)
(
SELECT 
    count(*) as count,
    account.EXT_STRING0 AS client_ID,
    account.EXT_STRING2 AS Email,
    activity.TEMPLATE_NAME AS Template_name,
    activity.NAME AS campaign_name,
    activity.EXECUTION_ID,
    activity.SEND_DATE,
    Activity.OPEN_DATE,
    Activity.CLICK_DATE
FROM
    crmautomation.oocke1_account account
        JOIN
    crmautomation.oocke1_activity activity ON (account.object_id = activity.rep_contact)
        LEFT JOIN
    crmautomation.OBJ_VAL val1 ON val1.obj_row_id = activity.CAMPAIGN_TYPE
        AND (val1.OBJ_VAL_ID IN (4250950))
        LEFT JOIN
    crmautomation.OBJ_VAL val2 ON val2.obj_row_id = activity.CAMPAIGN_TYPE
        AND (val2.OBJ_VAL_ID IN (4250951))
WHERE
    activity.TEMPLATE_NAME = ('cabin_surprise_ne')
        AND activity.SEND_DATE > ('2015.12.01')
    group by account.EXT_STRING0 ) a -- client_ID 
    group by account.EXT_STRING2 -- Email 
SELECT cnt, count(*)
FROM (SELECT acc.EXT_STRING0 as client_ID, COUNT(a.rep_code) as cnt
      FROM crmautomation.oocke1_account acc left Join 
           crmautomation.oocke1_activity a 
           ON acc.object_id = a.rep_contact and
              a.TEMPLATE_NAME = 'cabin_surprise_ne'
              a.SEND_DATE > '2015.12.01' left JOIN 
           crmautomation.OBJ_VAL val1
           ON val1.obj_row_id = a.CAMPAIGN_TYPE AND (val1.OBJ_VAL_ID in (4250950)) left JOIN 
           crmautomation.OBJ_VAL val2
           ON val2.obj_row_id = a.CAMPAIGN_TYPE AND (val2.OBJ_VAL_ID in (4250951))
      GROUP BY acc.EXT_STRING0
     ) a
GROUP BY cnt
ORDER BY cnt;
select count(*) count2, sum(a.count)
(
SELECT 
    count(*) as count,
    account.EXT_STRING0 AS client_ID,
    account.EXT_STRING2 AS Email,
    activity.TEMPLATE_NAME AS Template_name,
    activity.NAME AS campaign_name,
    activity.EXECUTION_ID,
    activity.SEND_DATE,
    Activity.OPEN_DATE,
    Activity.CLICK_DATE
FROM
    crmautomation.oocke1_account account
        JOIN
    crmautomation.oocke1_activity activity ON (account.object_id = activity.rep_contact)
        LEFT JOIN
    crmautomation.OBJ_VAL val1 ON val1.obj_row_id = activity.CAMPAIGN_TYPE
        AND (val1.OBJ_VAL_ID IN (4250950))
        LEFT JOIN
    crmautomation.OBJ_VAL val2 ON val2.obj_row_id = activity.CAMPAIGN_TYPE
        AND (val2.OBJ_VAL_ID IN (4250951))
WHERE
    activity.TEMPLATE_NAME = ('cabin_surprise_ne')
        AND activity.SEND_DATE > ('2015.12.01')
    group by account.EXT_STRING0 ) a -- client_ID 
    group by account.EXT_STRING2 -- Email