表格模式具有具有以下值的单列:
NewsletteridPattern
------------
%50%
%51%
表 B 具有以下值:
SubscriberId NewsletterIdCsv
------------ -----------------
47421584 51
45551047 50,51
925606902 50
47775985 51
我有以下查询,它基本上通过使用模式计算逗号分隔值:
SELECT *
FROM TABLEB t WITH (nolock)
JOIN Patterns p ON (t.NewsletteridPattern LIKE p.pattern)
问题是计数不正确,例如我的模式有 %50% 和 %51% ,因此表 B 中的行号 2 应该计算两次,但是对于我的查询它只有一次,我该如何解决?
编辑:
我忘记在导致问题的原始查询中添加 DISTINCT:
SELECT Count(Distinct Subscriberid)
FROM TABLEB t WITH (nolock)
JOIN Patterns p ON (t.NewsletteridPattern LIKE p.pattern)