这可能是一个重复的问题,但我没有找到任何解决办法。我有这样的数据表。
Name In_time out_time
John NULL 9/1/2014 17:00
John NULL 9/2/2014 11:18
John NULL 9/2/2014 12:22
John NULL 9/2/2014 13:22
John NULL 9/3/2014 13:00
John NULL 9/3/2014 17:13
John NULL 9/3/2014 18:13
John NULL 9/3/2014 19:13我的问题是如何删除这些重复的数据-- .rows是唯一的,但out_time列中的日期相同(没有时间)。我只需要考虑到time.the输出应该是这样的日期,才需要永久删除这些重复项。
Name In_time out_time
John NULL 9/1/2014 17:00
John NULL 9/2/2014 11:18
John NULL 9/3/2014 13:00发布于 2015-10-25 09:15:45
将组语句更改为年、月和日。
SELECT name,
in_time,
min(out_time)
FROM your_table
GROUP BY name,
DATE_FORMAT(in_time, "%Y-%m-%d");若要删除原始表中的行,必须先执行两个步骤,首先添加一个虚拟字段(自动包含日期)
ALTER TABLE your_table ADD vdate DATE AS
( DATE_FORMAT(out_time, "%Y-%m-%d") ) PERSISTENT;然后用忽略创建一个新的唯一索引。
ALTER IGNORE TABLE your_table ADD UNIQUE INDEX idx2 (name,vdate);这将直接删除重复操作。
https://stackoverflow.com/questions/33327948
复制相似问题