sql - 选择具有给定值的第一行 T-SQL
问题描述
我试图从数据库中删除所有重复 int(名为 user_id)的行,以便只保留第一次出现。不知道为什么我的尝试没有奏效,并且想要解释您如何解决问题,而不是解决方案。
我的尝试(和示例数据)http://sqlfiddle.com/#!18/9f6fc/5
最终目标:
user_id, PAios_AccountId
123 a
223 b
解决方案
最简单的方法是使用ROW_NUMBER
:
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;
推荐阅读
- sdk - Windows SDK 10 找不到 .pcp 文件
- bash - 脚本命令执行在 go 程序中永远挂起
- manpage - .Bl、.It 在 mandoc 中渲染列表在 macOS 和 Ubuntu 16.04 上都不起作用
- shell - Shell:源脚本可以将字符串回显到标准输出 [SH]
- windows - 错误 LNK2019:未解析的外部符号 __CheckForDebuggerJustMyCode 在函数 DriverEntry 中引用
- python - 如何从python中的mysql查询中删除格式
- python - jq基于键值过滤器查询json键
- selenium - 通过 TestNG xml 运行多个类时,它只执行具有多个独立测试的类中的一个测试
- javascript - TypeError: mitsukuApi.send 不是函数
- xcode - git branch commit 没有合并到 master