テーブルでチェックしたいキーワードがない場合、悲しいことに、次のようなクエリを探しています。
SELECT CASE WHEN urlCol LIKE '%Url-Title-1%' THEN 'Url-Title-1'
WHEN urlCol LIKE '%Url-Title-2%' THEN 'Url-Title-2'
WHEN urlCol LIKE '%Url-Title-3%' THEN 'Url-Title-3'
WHEN urlCol LIKE '%Url-Title-4%' THEN 'Url-Title-4'
..... END Url,
COUNT(DISTINCT userId) TotalVisitors
FROM someTable
WHERE urlCol LIKE '%Url-Title-1%'
OR urlCol LIKE '%Url-Title-2%'
OR urlCol LIKE '%Url-Title-3%'
OR urlCol LIKE '%Url-Title-4%'
.....
GROUP BY CASE WHEN urlCol LIKE '%Url-Title-1%' THEN 'Url-Title-1'
WHEN urlCol LIKE '%Url-Title-2%' THEN 'Url-Title-2'
WHEN urlCol LIKE '%Url-Title-3%' THEN 'Url-Title-3'
WHEN urlCol LIKE '%Url-Title-4%' THEN 'Url-Title-4'
..... END
これらのキーワードをテーブルに入れることができれば、クエリは次のようになります。
SELECT B.KeyWord,
COUNT(DISTINCT userId) TotalVisitors
FROM someTable A
INNER JOIN TableWithKeywords B
ON A.urlCol LIKE '%' + B.KeyWord + '%'
GROUP BY B.KeyWord
かなりの違いですよね?クエリに触れることなく、そのテーブルのキーワードを追加または削除できるので、非常に便利です。