[英]SQL: using group by concat()
我有一个查询,该查询返回特定日期的客户打来的电话的结果以及对客户等的一些建议,即按日期分组
但是现在我想找到我尝试按lead_id
和cuncat(lead_id,timecreatredFormat)
分组的客户数量,仍然存在数据不匹配的情况
以下是我尝试过的查询
select
sum(t.enquiry_cnt),
sum(t.suggested_cnt),
sum(t.tot_cnt)
from
(select
case
when source = 1 then 1
else 0
end enquiry_cnt,
case
when source = 6 then 1
else 0
end suggested_cnt,
case
when (source = 1 || source = 6) then 1
else 0
end tot_cnt,
date_format(timecreated, '%d-%b-%Y') created_time,
lead_id,timecreated
from
mg_lead_suggested_listing group by concat(created_time,lead_id) ) t
group by t.created_time
order by t.timecreated desc
limit 10;
提前致谢
检查以下查询是否正确。 我添加了COUNT(DISTINCT t.lead_id)以获取客户计数。
DECLARE @TEMP TABLE
(
[source] INT,
lead_id INT,
timecreated DATETIME
)
INSERT INTO @TEMP VALUES (1,1,GETDATE())
INSERT INTO @TEMP VALUES (6,1,GETDATE())
INSERT INTO @TEMP VALUES (6,1,GETDATE())
INSERT INTO @TEMP VALUES (1,2,DATEADD(d,-1,GETDATE()))
INSERT INTO @TEMP VALUES (1,1,DATEADD(d,-1,GETDATE()))
INSERT INTO @TEMP VALUES (1,1,DATEADD(d,-1,GETDATE()))
SELECT
CAST(t.timecreated AS DATE) [date],
SUM(t.enquiry_cnt) enquiry_cnt,
(SELECT COUNT(DISTINCT lead_id) FROM @TEMP WHERE CAST(timecreated AS DATE) = CAST(t.timecreated AS DATE) AND [source] = 1) as lead_enquiry_cnt,
SUM(t.suggested_cnt) suggested_cnt,
(SELECT COUNT(DISTINCT lead_id) FROM @TEMP WHERE CAST(timecreated AS DATE) = CAST(t.timecreated AS DATE) AND [source] = 6) as lead_suggested_cnt,
SUM(t.tot_cnt) tot_cnt,
COUNT(t.lead_id) as lead_cnt
FROM
(
SELECT
CASE
WHEN [source] = 1 THEN 1
ELSE 0
END enquiry_cnt,
CASE
WHEN [source] = 6 THEN 1
ELSE 0
END suggested_cnt,
CASE
WHEN ([source] = 1 OR [source] = 6) THEN 1
ELSE 0
END tot_cnt,
lead_id,
timecreated
FROM
@TEMP
) AS t
group by
CAST(t.timecreated AS DATE)
order by
[date] desc
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.