我已尝试查看此问题sql - distinct + select,似乎无法根据我的情况正确定制。我也不在sql开发团队,所以我不知道数据库中的所有内容和内容。我在测试数据库中在黑暗中拍摄。以下是我当前查询的伪示例:
select a.name, b.col1,
from name a, amount b
where a.identifier=b.acctid
and b.col1 != 'test'
查询当前返回的内容示例:
a.name | b.col1
Jeff 1
Jeff 333
Jeff 77
Jeff 1
Jeff 14
Bob 22
Bob 4
Bob 5
Bob 6
我希望查询结果返回基于ColA唯一的n(我选择的数字)结果。例如,如果n是2:
a.name | b.col1
Jeff 1
Jeff 333
Bob 22
Bob 4
答案 0 :(得分:3)
对于SQL Server 2005+,您可以使用分析函数:
DECLARE @n INT
SET @n = 2
;WITH CTE AS
( SELECT a.name, b.col1, b.col2, ROW_NUMBER() OVER(PARTITION BY ColA ORDER BY a.identifier) Corr
FROM name a
INNER JOIN amount b
ON a.identifier = b.acctid
WHERE b.col2 != 'test'
)
SELECT *
FROM CTE
WHERE Corr <= @n
我还将您的查询更改为使用显式连接。
答案 1 :(得分:1)
第1步:
使用该信息和另一列创建一个临时表,每个ColA类型都有一个自动增量值。
第2步:
选择新列&lt;的所有信息n值