我在内部加入2个表时遇到问题:LOOKUP
和PERF
。
...只有创意名称和“性能”。 table具有广告素材名称及其值。我需要将值设置为LOOKUP
(其中两个表都有共同的广告素材名称)。仅供参考:UCID只不过是创意名称
此外,创意名称在两个表中都有重复,因此我需要将它们相加并获得不同的值。下面是我使用的代码,但sum()函数似乎没有工作,因为我看到与原始表数据进行比较时的不同值。
这是我用过的代码
select UCID/*, [creative name]*/,
sum(perf.[delivered impressions]) as ttl_del,
sum(perf.[IMM_SUMMARY])as ttl_WSO,
sum(perf.[clicks]) as ttl_clicks,
sum(perf.[IMM_SUMMARY])/sum(perf.[delivered impressions])*100 as IMM_Score
from ADHOC_NG_UCID_lookup lookup
JOIN FILTERED_CREATIVE_EXEC_TABLE perf ON lookup.[UCID] = perf.[creative name]
where perf.[delivered impressions] > 0
and perf.[brand] in ('MALIBU')
and perf.month in ('APRIL')
and perf.[sizes] in('160x600')
group by UCID/*, lookup.[creative name]*/
order by UCID/*, [creative name]*/
这是代码,其中i用于交叉检查值(这是原始表)
select [creative name],
sum([Delivered Impressions]) asttl_del,
sum([IMM_SUMMARY])asttl_WSO,
sum([clicks])as ttl_clicks,
sum([IMM_SUMMARY])/sum([Delivered Impressions])*100 as IMM_Score
from FILTERED_CREATIVE_EXEC_TABLE
where [delivered impressions] > 0
and [brand] in('MALIBU')
and month in('APRIL')
and [sizes] in('160x600')
group by[creative name]
order by[creative name]
请建议或告诉我为什么sum()函数无法正常工作。
非常感谢您的支持。
答案 0 :(得分:1)
FILTERED_CREATIVE_EXEC_TABLE
中是否存在ADHOC_NG_UCID_lookup
中不存在的行?如果是这样,INNER JOIN
将从您的第一个查询中排除这些行。要检查这种情况:
select perf.[creative name]
from FILTERED_CREATIVE_EXEC_TABLE perf
LEFT JOIN ADHOC_NG_UCID_lookup lookup
ON perf.[creative name] = lookup.[UCID]
where perf.[delivered impressions]>0
and perf.[brand] in ('MALIBU')
and perf.month in ('APRIL')
and perf.[sizes] in('160x600')
and lookup.[UCID] is null
答案 1 :(得分:0)
您的数据可能有重复数据。
运行这些。如果其中任何一个返回的数据意味着那些记录是重复的
select
UCID, COUNT(*)
from ADHOC_NG_UCID_lookup lookup
group by UCID
having COUNT(*)>1
select
[creative name], COUNT(*)
from FILTERED_CREATIVE_EXEC_TABLE perf
group by [creative name]
having COUNT(*)>1