我是 SQL 初学者。我在 MariaDB 中有一个包含以下字段的表
(我添加了具有自动增量的 id。)
现在,我需要删除具有相同 DATE 的行。
如果这是熊猫的数据框,一种方法是,
df = df.drop_duplicates ()
如何在 SQL 中执行此操作?
样本数据
date/open/high/low/close/volume
2019.02.04 00:00:00 13.34303 13.34303 13.34143 13.34303 4
2019.02.04 00:01:00 13.34303 13.34303 13.34303 13.34303 2
★ 2019.02.04 00:02:00 13.34303 13.34323 13.34303 13.34323 2
★2019.02.04 00:02:00 13.34303 13.34323 13.34303 13.34323 2
2019.02.04 00:04:00 13.33663 13.33743 13.33623 13.33733 86
2019.02.04 00:05:00 13.33734 13.33734 13.33613 13.33613 70
所需数据
2019.02.04 00:00:00 13.34303 13.34303 13.34143 13.34303 4
2019.02.04 00:01:00 13.34303 13.34303 13.34303 13.34303 2
★2019.02.04 00:02:00 13.34303 13.34323 13.34303 13.34323 2
2019.02.04 00:03:00 13.34333 13.34333 13.33664 13.33664 14
2019.02.04 00:04:00 13.33663 13.33743 13.33623 13.33733 86
2019.02.04 00:05:00 13.33734 13.33734 13.33613 13.33613 70
我的环境细节:
Windows 版本:家庭 64 位
XAMPP 版本:7.2.8 控制面板
版本:3.2.2 [编译时间:2015 年 11 月 12 日]
127.0.0.1 通过 TCP/IP
MariaDB SSL 未使用
10.1.34-MariaDB - mariadb.org 二进制分发协议版本:10
字符集:UTF-8 Unicode (utf8)
供评论
对于回答的命令
任何建议表示赞赏!
如果您要删除表中日期多次出现的每条记录,您可以按以下步骤操作:
DELETE t
FROM mytable t
INNER JOIN (
SELECT datetime FROM mytable GROUP BY datetime HAVING COUNT(*) > 1
) t1 ON t1.datetime = t.datetime;
编辑您的问题后,我了解到您想删除其中一个重复行,同时保留另一行。
为此,您需要一个列来唯一标识重复组中的每条记录。我们称其为 column id
。
DELETE t FROM mytable t
INNER JOIN mytable t1 ON t1.datetime = t.datetime AND t1.id < t.id;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句