SQL选择多个计数(*)输出
我很难弄清楚如何才能得到一个查询,该查询提供了多少人在某个竞选活动中收到多少封信的数据。 喜欢 输出: 我编写的当前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,
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