Sql 在具有重复项(字符串值)的列上按分组
我必须在下表中创建一个MS SQL查询 假设我有以下一张表: 我希望通过在第1列上分组得到以下结果: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
如何实现这一点?使用
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