【发布时间】:2019-07-01 09:57:33
【问题描述】:
我有一个包含示例数据的表格,如下所示:
systemuid filename mindatetime maxdatetime
10006 monitor_7.dat 2019-06-05 03:06:18.001 AM 2019-06-06 03:06:11.0 AM
72111 monitor_4.dat 2019-04-28 09:00:00 AM 2019-04-29 11:00:00 AM
10006 monitor_5.dat 2019-04-28 07:00:00 AM 2019-04-28 10:00:00 AM
90204 monitor_7.dat 2019-05-24 03:06:11.001 AM 2019-06-05 03:06:18.0 AM
90204 monitor_4.dat 2019-04-28 09:30:00 AM 2019-04-29 23:00:00 PM
72111 monitor_7.dat 2019-04-21 03:06:26.0 AM 2019-05-21 03:06:10.0 AM
10006 monitor_5.dat 2019-04-28 02:00:00 PM 2019-04-28 06:00:00 PM
72111 monitor_7.dat 2019-05-12 07:00:10.001 AM 2019-05-13 10:00:10.000 AM
90204 monitor_5.dat 2019-04-28 09:00:00 AM 2019-04-28 03:00:00 PM
10006 monitor_7.dat 2019-05-15 09:30:10.001 AM 2019-05-18 11:30:10.000 AM
72111 monitor_4.dat 2019-04-28 07:00:00 AM 2019-04-29 11:00:00 AM
10006 monitor_7.dat 2019-05-21 03:06:10.001 AM 2019-05-24 03:06:11.0 AM
我想通过将 systemuid 和文件名分组,然后按 mindatetime、maxdatetime 排序来组织数据。每个 systemuid 将有多个文件名,每个文件名都有多个时间戳。
systemuid filename mindatetime maxdatetime
10006 monitor_5.dat 2019-04-28 07:00:00 AM 2019-04-28 10:00:00 AM
10006 monitor_5.dat 2019-04-28 02:00:00 PM 2019-04-28 06:00:00 PM
10006 monitor_7.dat 2019-05-15 09:30:10.001 AM 2019-05-18 11:30:10.000 AM
10006 monitor_7.dat 2019-05-21 03:06:10.001 AM 2019-05-24 03:06:11.0 AM
10006 monitor_7.dat 2019-06-05 03:06:18.001 AM 2019-06-06 03:06:11.0 AM
72111 monitor_4.dat 2019-04-28 07:00:00 AM 2019-04-29 11:00:00 AM
72111 monitor_4.dat 2019-04-28 09:00:00 AM 2019-04-29 11:00:00 AM
72111 monitor_7.dat 2019-04-21 03:06:26.0 AM 2019-05-21 03:06:10.0 AM
72111 monitor_7.dat 2019-05-12 07:00:10.001 AM 2019-05-13 10:00:10.000 AM
90204 monitor_4.dat 2019-04-28 09:30:00 AM 2019-04-29 23:00:00 PM
90204 monitor_5.dat 2019-04-28 09:00:00 AM 2019-04-28 03:00:00 PM
90204 monitor_7.dat 2019-05-24 03:06:11.001 AM 2019-06-05 03:06:18.0 AM
我需要它作为我的存储过程的游标。因此需要数据采用这种格式才能对记录执行功能。表的大小非常庞大,有数百万条记录。
【问题讨论】:
-
你之前尝试过什么?结果是什么?这似乎是一个简单的
order by问题,但需要更多信息 -
列
mindatetime和maxdatetime我假设以 CHAR / VARCHAR 格式存储? -
@RaymondNijland 不,这些列是时间戳。
-
@Muhammadvakili Just a order by 将对整个数据集进行排序,我需要对每个 systemuid 和文件名的最小和最大日期时间进行排序。
-
这不应该只为你工作
ORDER BY systemuid, filename, mindatetime, maxdatetime正如你提到的mindatetime和maxdatetime是timestamps
标签: sql postgresql stored-procedures stored-functions