我有一组数据如下
number quantity
1 4
2 6
3 7
4 9
2 1
1 2
5 4
我需要在“number”列中找到唯一值
输出应如下所示:
number quantity
3 7
4 9
5 4
任何帮助将不胜感激。我正在使用MS SQL
答案 0 :(得分:1)
在内部查询中获取所有不同的数字,然后再与主表一起加入以获得预期的结果。
select o.*
from mytable o , (select number
from mytable
group by number) dist
where o.number = dist.number
答案 1 :(得分:0)
一种方法可以是使用聚合查询来计算每个数字在子查询中使用它的次数:
SELECT number, quantity
FROM my_table
WHERE number IN (SELECT number
FROM my_table
GROUP BY number
HAVING COUNT(*) = 1)
答案 2 :(得分:0)
如果您的列名是表my_table中的my_column,则查询为:
SELECT my_column, COUNT(*) as count
FROM my_table
GROUP BY my_column
HAVING COUNT(*) > 1
这将返回所有具有重复my_column内容的记录,以及此内容在数据库中出现的次数。
您可以在下面的代码中使用欲望输出:
SELECT DISTINCT(my_column), COUNT(*) as count
FROM my_table
GROUP BY my_column
答案 3 :(得分:0)
试试这个:
SELECT *
FROM yourtable t1
WHERE (SELECT Count(*)
FROM yourtable t2
WHERE t1.number = t2.number) = 1
在where子句中查询将返回每个number
的出现次数,并用1检查它将只返回那些在表中只出现一次的行。
答案 4 :(得分:0)
您可以使用ROW_NUMBER()
分析功能,如
select * from
(
select number,
quantity,
ROW_NUMBER() OVER(PARTITION BY number ORDER BY number) AS rn
from table1
) tab where rn = 1;
答案 5 :(得分:0)
试试这个:
create table #TableName(number int, quantity int)
insert into #TableName values(1, 2)
insert into #TableName values(1, 4)
insert into #TableName values(2, 4)
SELECT number, quantity
FROM #TableName
WHERE number
IN(SELECT number
FROM #TableName
GROUP BY number
HAVING COUNT(NUMBER) = 1)