Sql 在具有重复项(字符串值)的列上按分组

Sql 在具有重复项(字符串值)的列上按分组,sql,sql-server,Sql,Sql Server,我必须在下表中创建一个MS SQL查询 假设我有以下一张表: 我希望通过在第1列上分组得到以下结果: 如何实现这一点?使用COUNT和分组方式 查询 SELECT column1, 'N/A' as column2, 'N/A' as column3, COUNT(column1) AS column4_amount FROM your_table_name GROUP BY column1; 如果不需要第2列和第3列,请尝试以下操作: SELECT column1, COUNT(1) A

我必须在下表中创建一个MS SQL查询

假设我有以下一张表:

我希望通过在第1列上分组得到以下结果:


如何实现这一点?

使用
COUNT
分组方式

查询

SELECT column1, 'N/A' as column2, 'N/A' as column3,
COUNT(column1) AS column4_amount
FROM your_table_name
GROUP BY column1;
如果不需要第2列和第3列,请尝试以下操作:

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

您应该在第1列中使用
分组依据
,因为
分组依据
可以帮助您对具有相同名称的所有项目进行分组

要计算一组项目下的项目总数,请从同名表中使用
count
aggregate函数。现在,您需要检查每个项目是否存在多次。使用
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

为这个结果做了什么努力?为什么
column2
column3
N/A
?@Ullas因为这没有意义,我不需要这些信息。而且,不可能在一行上显示这些可能的重复项,我是否可以编辑此查询,使其仅显示两个或更多重复项的结果?如果它只出现一次,那么我不想显示它。@Ozkan使用
具有count(1)>1
,请检查我的答案。虽然此代码可能会回答问题,但提供有关为什么和/或如何回答问题的附加上下文将显著提高其长期价值。请在您的回答中添加一些解释。
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