[英]Need help for the SQL Distinct
原始表
+-- Col 1 --+-- Col 2 --+
+-- 1 --+-- a --+
+-- 1 --+-- b --+
+-- 1 --+-- c --+
+-- 2 --+-- d --+
+-- 3 --+-- e --+
+-- 3 --+-- f --+
+-----------------------+
结果:
+-- Col 1 --+-- Col 2 --+
+-- 1 --+-- a --+
+-- 2 --+-- d --+
+-- 3 --+-- e --+
+-----------------------+
知道如何区分表格吗?
“ DISTINCT”适用于结果集中的每一列。
“ GROUP BY”将提供您所需的结果,但是您需要考虑“ col2”在结果集中是否具有实际含义。
SELECT col1, min(col2) as col2
FROM T
GROUP BY col1
SELECT t.Col1, t.Col2
FROM T t
WHERE NOT EXISTS(SELECT *
FROM T s
WHERE t.Col1 = s.Col1 AND t.Col2 > s.Col1)
col2中没有相同的值,而col1中没有相同的值,因此如果您同时选择两列,则DISTINCT可能不会生成结果。
如果您使用SQL Server(表名称为TEST),则可以在T-SQL中使用CROSS APPLY,如下所示:
SELECT DISTINCT Col1, TEST2.Col2 FROM TEST
CROSS APPLY (SELECT TOP 1 Col2 FROM TEST TEST2
WHERE TEST2.Col1 = TEST.Col1) TEST2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.