我有一张看起来像这样的表:

如您所见,有一些日期重复,那么如何为该表中的每个日期只选择一行?
'id_from_other_table'列来自INNER JOIN和上表
Tho*_*ler 10
有多个行具有相同的日期,但时间不同.因此,DISTINCT start_date将不起作用.你需要的是:将start_date强制转换为DATE(因此TIME部分已经消失),然后执行DISTINCT:
SELECT DISTINCT CAST(start_date AS DATE) FROM table;
Run Code Online (Sandbox Code Playgroud)
根据您使用的数据库,DATE的类型名称不同.
除日期外,您还需要其他任何信息吗?如果不:
SELECT DISTINCT start_date FROM table;
Run Code Online (Sandbox Code Playgroud)
你提到有日期重复,但看起来它们在秒的精度上非常独特。
您能否澄清您开始考虑重复日期的日期精度 - 天,小时,分钟?
在任何情况下,您可能都希望将datetime 字段设置为地板。在删除重复项时,您没有指明首选哪个字段,因此此查询将优先按字母顺序显示姓氏。
SELECT MAX(owner_name),
--floored to the second
dateadd(second,datediff(second,'2000-01-01',start_date),'2000-01-01') AS StartDate
From MyTable
GROUP BY dateadd(second,datediff(second,'2000-01-01',start_date),'2000-01-01')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
101622 次 |
| 最近记录: |