我对SQL完全陌生。我从未使用过它,只需要一个简单的答案,因为我现在没有时间学习SQL :(。我需要从本地数据库中删除重复的记录。案例看起来像这样:
| id | type | ... |
-------------------
| 1 | test | ... |
| 1 | test2 | ... |
| 1 | test | ... |
| 1 | test | ... |
id
和type
但只保留在记录上。像这样:
| id | type | ... |
-------------------
| 1 | test | ... |
| 1 | test2 | ... |
无法使用按ID删除。我有5万条记录,我想删除所有重复的记录。当ID和类型相同时。
答案 0 :(得分:1)
请尝试这个
第一条路
SELECT id, type
FROM table_name
Group by id, type
第二种方式
SELECT DISTINCT id, type
FROM table_name;
答案 1 :(得分:0)
SELECT DISTINCT
语句仅用于返回不同的(不同的)值。
在表内,一列通常包含许多重复值;有时您只想列出不同的(不同的)值。
SELECT DISTINCT column1, column2, ...
FROM table_name;
在您的表中
SELECT DISTINCT id, type, ...
FROM table_name;
答案 2 :(得分:0)
选择伴侣时,您只需要使用关键字distinct即可。尝试这样
SELECT DISTINCT id, type, blah blah blah FROM your_table; // this should take care of em
答案 3 :(得分:0)
可能会有所帮助的TSQL示例代码:
WITH tbl_alias AS
(
SELECT id, type,
RN = ROW_NUMBER()OVER(PARTITION BY id, type ORDER BY id)
FROM tbl
)
DELETE FROM tbl_alias WHERE RN > 1
答案 4 :(得分:0)
您应该用ID和类型替换表分组,并在其他字段上使用聚合函数。
您应该在问题中添加表的定义,并指定用于获取其他字段的规则。无论如何,这是一个简单的解决方案:
-- Create a temp copy of original table with distinct values
CREATE TEMPORARY TABLE copy_table1
SELECT id, type, MIN(field3) AS field3, ...
FROM table1
GROUP BY id, type;
-- Empty original table
DELETE FROM table1;
-- Insert distinct data into original table
INSERT INTO table1 (id, type, field3, ...)
SELECT id, type, field3, ...
FROM copy_table1;