对具有重复项(字符串值)的列进行分组
Posted
技术标签:
【中文标题】对具有重复项(字符串值)的列进行分组【英文标题】:Group by on a column with duplicates (string values) 【发布时间】:2016-05-12 12:29:08 【问题描述】:我必须在下表中创建一个 MS SQL 查询。
考虑我有以下单个表:
我想通过在 column1 上分组得到以下结果:
我怎样才能做到这一点?
【问题讨论】:
为这个结果做了什么努力? 为什么column2
和column3
是N/A
?
@Ullas 因为它没有意义,所以我不需要这些信息。而且,不可能在一行上显示这些
SQL query for finding records where count > 1的可能重复
【参考方案1】:
将COUNT
与GROUP BY
一起使用。
查询
SELECT column1, 'N/A' as column2, 'N/A' as column3,
COUNT(column1) AS column4_amount
FROM your_table_name
GROUP BY column1;
【讨论】:
我还可以编辑此查询,使其仅显示包含 2 个或更多重复项的结果吗?如果它只出现一次,那么我不想显示它。 @Ozkan 使用HAVING count(1) > 1
,检查我的答案。【参考方案2】:
SELECT column1, 'N/A' as column2, 'N/A' as column3, COUNT(1) AS column4_amount
FROM table_name
GROUP BY column1
如果您不需要 column2 和 column3,请尝试以下操作:
SELECT column1, COUNT(1) AS column4_amount
FROM table_name
GROUP BY column1
更新: 如果您想要多次出现的结果,请尝试以下操作:
SELECT column1, 'N/A' as column2, 'N/A' as column3, COUNT(1) AS column4_amount
FROM table_name
GROUP BY column1
HAVING COUNT(1) > 1
【讨论】:
【参考方案3】:您应该将GROUP BY
与column1 一起使用,因为GROUP BY
可以帮助您对具有相同名称的所有项目进行分组。
要从同名表中计算一组项目下的总项目数,请使用 COUNT
聚合函数。现在您需要检查每个项目是否存在多次。使用 HAVING
子句,该子句接受所有包含两个以上项目的组。
SELECT column1, 'N/A' as column2, 'N/A' as column3, COUNT(1) AS column4_amount
FROM your_table_name
GROUP BY column1
HAVING COUNT(1) > 1
【讨论】:
虽然此代码可能会回答问题,但提供有关 why 和/或 如何 回答问题的额外上下文将显着改善其长期价值。请edit你的答案添加一些解释。以上是关于对具有重复项(字符串值)的列进行分组的主要内容,如果未能解决你的问题,请参考以下文章