在 SQL 中,如何删除列上的重复项而不将其包含在 SELECT 命令/提取中
In SQL how can I remove duplicates on a column without including it in the SELECT command/ the extract
我正在尝试删除 SQL 中某列的重复项,但不将该列包含在摘录中(因为它包含个人身份数据)。我以为我可以使用嵌套查询(如下所示)来做到这一点,但是这是行不通的。我还认为可以删除 WHERE 语句中的重复项,但无法从谷歌搜索中找到任何内容。有任何想法吗?提前致谢。
SELECT [ETHNIC], [RELIGION]
FROM
(SELECT DISTINCT [ID], [ETHNIC], [RELIGION]
FROM MainData)
像这样使用 distinct
将对 行 应用 distinct,因此如果有两行具有相同的 ID 但 ETHNIC 和 RELIGION 不同,则 distinct 不会删除它们。为此,您可以在查询中使用 group by
,但随后您需要使用聚合(例如 max
):
SELECT [ETHNIC], [RELIGION]
FROM
(SELECT [ID], MAX([ETHNIC]) AS ETHNIC, MAX([RELIGION]) AS RELIGION
FROM MainData
GROUP BY [ID])
如果这不是您要查找的内容,某些 SQL 方言要求您命名内部 select,因此您可以尝试将 AS X
添加到查询的末尾.
我正在尝试删除 SQL 中某列的重复项,但不将该列包含在摘录中(因为它包含个人身份数据)。我以为我可以使用嵌套查询(如下所示)来做到这一点,但是这是行不通的。我还认为可以删除 WHERE 语句中的重复项,但无法从谷歌搜索中找到任何内容。有任何想法吗?提前致谢。
SELECT [ETHNIC], [RELIGION]
FROM
(SELECT DISTINCT [ID], [ETHNIC], [RELIGION]
FROM MainData)
像这样使用 distinct
将对 行 应用 distinct,因此如果有两行具有相同的 ID 但 ETHNIC 和 RELIGION 不同,则 distinct 不会删除它们。为此,您可以在查询中使用 group by
,但随后您需要使用聚合(例如 max
):
SELECT [ETHNIC], [RELIGION]
FROM
(SELECT [ID], MAX([ETHNIC]) AS ETHNIC, MAX([RELIGION]) AS RELIGION
FROM MainData
GROUP BY [ID])
如果这不是您要查找的内容,某些 SQL 方言要求您命名内部 select,因此您可以尝试将 AS X
添加到查询的末尾.