Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择具有给定值T-SQL的第一行_Sql_Sql Server - Fatal编程技术网

选择具有给定值T-SQL的第一行

选择具有给定值T-SQL的第一行,sql,sql-server,Sql,Sql Server,我正试图从数据库中删除所有与名为user_id的int重复的行,以便只保留第一次出现的行。我不知道为什么我的尝试不起作用,我想解释一下你是如何解决问题的,而不仅仅是一个解决方案 我的尝试和示例数据 最终目标: user_id, PAios_AccountId 123 a 223 b 最简单的方法是使用行号: 最简单的方法是使用行号: 您的不起作用,因为您按两列分组,并且数据中没有重复项。但要让它真正起作用,你首先需要定义。它是按PAios_AccountId排序的吗?你通常

我正试图从数据库中删除所有与名为user_id的int重复的行,以便只保留第一次出现的行。我不知道为什么我的尝试不起作用,我想解释一下你是如何解决问题的,而不仅仅是一个解决方案

我的尝试和示例数据

最终目标:

user_id, PAios_AccountId
123      a
223      b
最简单的方法是使用行号:

最简单的方法是使用行号:


您的不起作用,因为您按两列分组,并且数据中没有重复项。但要让它真正起作用,你首先需要定义。它是按PAios_AccountId排序的吗?你通常总是这样吗?不希望按正在聚合的值分组,因为这将使行不同,并且如果它们都是唯一的,则没有任何计数>1。问题寻求调试帮助为什么此代码不起作用?必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处您的问题不起作用,因为您按两列分组,并且数据中没有重复项。但要让它真正起作用,你首先需要定义。它是按PAios_AccountId排序的吗?你通常总是这样吗?不希望按正在聚合的值分组,因为这将使行不同,并且如果它们都是唯一的,则没有任何计数>1。问题寻求调试帮助为什么此代码不起作用?必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处
WITH cte AS (
 SELECT *,
        ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY PAios_AccountId) AS rn 
 FROM [User]
)
DELETE FROM cte
WHERE rn <> 1;