SQL分组依据";例如;
我有一个查询,我在那里生成每月的客户联系活动。我们有几个类别(发电子邮件、发电子邮件、打电话进来、打电话出去等),共有8种不同的“类型”结果。我需要有两个组,一个用于所有“电子邮件”,另一个用于所有“电话”。目前,我有一个WHERE类型,如“%Email%”和“%Call%”。然而,我无法根据这两个“相似”的陈述进行分组。有人知道我怎样才能最好地做到这一点吗 我将查询简化为以下示例:SQL分组依据";例如;,sql,group-by,sql-like,Sql,Group By,Sql Like,我有一个查询,我在那里生成每月的客户联系活动。我们有几个类别(发电子邮件、发电子邮件、打电话进来、打电话出去等),共有8种不同的“类型”结果。我需要有两个组,一个用于所有“电子邮件”,另一个用于所有“电话”。目前,我有一个WHERE类型,如“%Email%”和“%Call%”。然而,我无法根据这两个“相似”的陈述进行分组。有人知道我怎样才能最好地做到这一点吗 我将查询简化为以下示例: SELECT TYPE FROM dbo.HISTORY WHERE (TYPE
SELECT TYPE
FROM dbo.HISTORY
WHERE (TYPE LIKE '%email%') OR
(TYPE LIKE '%call%')
这应该起作用:
SELECT
TYPE
FROM
dbo.HISTORY
WHERE
(TYPE LIKE '%email%') OR (TYPE LIKE '%call%')
GROUP BY
CASE
WHEN type LIKE '%email%' THEN 'email'
WHEN type LIKE '%call%' THEN 'call'
ELSE NULL
END
尽管如此,我的建议是使用一个类型代码表,其中包含另一列,告知每种类型是否被视为电子邮件或电话。这样,您就不必依赖于遵循特定格式的类型名,而这种格式肯定会被遗忘。然后,您可以轻松地对以下内容进行分组:
SELECT
H.type
FROM
dbo.History
INNER JOIN dbo.History_Types HT ON
HT.history_type_code = H.history_type_code AND
HT.history_type_category IN ('Email', 'Call')
GROUP BY
HT.history_type_category
挑选
从
dbo.历史
内部联接dbo.History\u类型HT ON
HT.history\u type\u code=H.history\u type\u code和
HT.history\u键入\u类别('Email','Call')
按HT.history\u type\u类别分组
将filter语句放入where子句不是更好吗
SELECT
H.type FROM
dbo.History
INNER JOIN dbo.History_Types HT ON
HT.history_type_code = H.history_type_code
WHERE **HT.history_type_category IN ('Email', 'Call')**
GROUP BY HT.history_type_category